mirror of
https://github.com/markqvist/Reticulum.git
synced 2024-11-22 13:40:19 +00:00
Improved I2P interface display in rnstatus
This commit is contained in:
parent
7848b7e396
commit
d3ab0878e0
@ -530,7 +530,7 @@ class I2PInterfacePeer(Interface):
|
|||||||
class I2PInterface(Interface):
|
class I2PInterface(Interface):
|
||||||
BITRATE_GUESS = 256*1000
|
BITRATE_GUESS = 256*1000
|
||||||
|
|
||||||
def __init__(self, owner, name, rns_storagepath, peers, connectable = True):
|
def __init__(self, owner, name, rns_storagepath, peers, connectable = False):
|
||||||
self.rxb = 0
|
self.rxb = 0
|
||||||
self.txb = 0
|
self.txb = 0
|
||||||
self.online = False
|
self.online = False
|
||||||
@ -580,7 +580,7 @@ class I2PInterface(Interface):
|
|||||||
|
|
||||||
if peers != None:
|
if peers != None:
|
||||||
for peer_addr in peers:
|
for peer_addr in peers:
|
||||||
interface_name = peer_addr
|
interface_name = self.name+" to "+peer_addr
|
||||||
peer_interface = I2PInterfacePeer(self, self.owner, interface_name, peer_addr)
|
peer_interface = I2PInterfacePeer(self, self.owner, interface_name, peer_addr)
|
||||||
peer_interface.OUT = True
|
peer_interface.OUT = True
|
||||||
peer_interface.IN = True
|
peer_interface.IN = True
|
||||||
|
@ -936,6 +936,12 @@ class Reticulum:
|
|||||||
else:
|
else:
|
||||||
ifstats["clients"] = None
|
ifstats["clients"] = None
|
||||||
|
|
||||||
|
if hasattr(interface, "i2p") and hasattr(interface, "connectable"):
|
||||||
|
if interface.connectable:
|
||||||
|
ifstats["i2p_connectable"] = True
|
||||||
|
else:
|
||||||
|
ifstats["i2p_connectable"] = False
|
||||||
|
|
||||||
if hasattr(interface, "b32"):
|
if hasattr(interface, "b32"):
|
||||||
if interface.b32 != None:
|
if interface.b32 != None:
|
||||||
ifstats["i2p_b32"] = interface.b32+".b32.i2p"
|
ifstats["i2p_b32"] = interface.b32+".b32.i2p"
|
||||||
|
@ -59,86 +59,96 @@ def program_setup(configdir, dispall=False, verbosity = 0):
|
|||||||
for ifstat in stats["interfaces"]:
|
for ifstat in stats["interfaces"]:
|
||||||
name = ifstat["name"]
|
name = ifstat["name"]
|
||||||
|
|
||||||
if dispall or not (name.startswith("LocalInterface[") or name.startswith("TCPInterface[Client") or name.startswith("I2PInterfacePeer[Connected peer")):
|
if dispall or not (
|
||||||
print("")
|
name.startswith("LocalInterface[") or
|
||||||
|
name.startswith("TCPInterface[Client") or
|
||||||
|
name.startswith("I2PInterfacePeer[Connected peer") or
|
||||||
|
(name.startswith("I2PInterface[") and ("i2p_connectable" in ifstat and ifstat["i2p_connectable"] == False))
|
||||||
|
):
|
||||||
|
|
||||||
if ifstat["status"]:
|
if not (name.startswith("I2PInterface[") and ("i2p_connectable" in ifstat and ifstat["i2p_connectable"] == False)):
|
||||||
ss = "Up"
|
print("")
|
||||||
else:
|
|
||||||
ss = "Down"
|
|
||||||
|
|
||||||
if ifstat["mode"] == RNS.Interfaces.Interface.Interface.MODE_ACCESS_POINT:
|
if ifstat["status"]:
|
||||||
modestr = "Access Point"
|
ss = "Up"
|
||||||
elif ifstat["mode"] == RNS.Interfaces.Interface.Interface.MODE_POINT_TO_POINT:
|
|
||||||
modestr = "Point-to-Point"
|
|
||||||
elif ifstat["mode"] == RNS.Interfaces.Interface.Interface.MODE_ROAMING:
|
|
||||||
modestr = "Roaming"
|
|
||||||
elif ifstat["mode"] == RNS.Interfaces.Interface.Interface.MODE_BOUNDARY:
|
|
||||||
modestr = "Boundary"
|
|
||||||
elif ifstat["mode"] == RNS.Interfaces.Interface.Interface.MODE_GATEWAY:
|
|
||||||
modestr = "Gateway"
|
|
||||||
else:
|
|
||||||
modestr = "Full"
|
|
||||||
|
|
||||||
|
|
||||||
if ifstat["clients"] != None:
|
|
||||||
clients = ifstat["clients"]
|
|
||||||
if name.startswith("Shared Instance["):
|
|
||||||
cnum = max(clients-1,0)
|
|
||||||
if cnum == 1:
|
|
||||||
spec_str = " program"
|
|
||||||
else:
|
|
||||||
spec_str = " programs"
|
|
||||||
|
|
||||||
clients_string = "Serving : "+str(cnum)+spec_str
|
|
||||||
elif name.startswith("I2PInterface["):
|
|
||||||
cnum = max(clients-1,0)
|
|
||||||
if cnum == 1:
|
|
||||||
spec_str = " connected I2P endpoint"
|
|
||||||
else:
|
|
||||||
spec_str = " connected I2P endpoints"
|
|
||||||
|
|
||||||
clients_string = "Peers : "+str(cnum)+spec_str
|
|
||||||
else:
|
else:
|
||||||
clients_string = "Clients : "+str(clients)
|
ss = "Down"
|
||||||
|
|
||||||
else:
|
if ifstat["mode"] == RNS.Interfaces.Interface.Interface.MODE_ACCESS_POINT:
|
||||||
clients = None
|
modestr = "Access Point"
|
||||||
|
elif ifstat["mode"] == RNS.Interfaces.Interface.Interface.MODE_POINT_TO_POINT:
|
||||||
print(" {n}".format(n=ifstat["name"]))
|
modestr = "Point-to-Point"
|
||||||
|
elif ifstat["mode"] == RNS.Interfaces.Interface.Interface.MODE_ROAMING:
|
||||||
if "ifac_netname" in ifstat and ifstat["ifac_netname"] != None:
|
modestr = "Roaming"
|
||||||
print(" Network : {nn}".format(nn=ifstat["ifac_netname"]))
|
elif ifstat["mode"] == RNS.Interfaces.Interface.Interface.MODE_BOUNDARY:
|
||||||
|
modestr = "Boundary"
|
||||||
print(" Status : {ss}".format(ss=ss))
|
elif ifstat["mode"] == RNS.Interfaces.Interface.Interface.MODE_GATEWAY:
|
||||||
|
modestr = "Gateway"
|
||||||
if clients != None:
|
|
||||||
print(" "+clients_string)
|
|
||||||
|
|
||||||
if not (name.startswith("Shared Instance[") or name.startswith("TCPInterface[Client") or name.startswith("LocalInterface[")):
|
|
||||||
print(" Mode : {mode}".format(mode=modestr))
|
|
||||||
|
|
||||||
if "bitrate" in ifstat and ifstat["bitrate"] != None:
|
|
||||||
print(" Rate : {ss}".format(ss=speed_str(ifstat["bitrate"])))
|
|
||||||
|
|
||||||
if "peers" in ifstat and ifstat["peers"] != None:
|
|
||||||
print(" Peers : {np} reachable".format(np=ifstat["peers"]))
|
|
||||||
|
|
||||||
if "ifac_signature" in ifstat and ifstat["ifac_signature"] != None:
|
|
||||||
sigstr = "<…"+RNS.hexrep(ifstat["ifac_signature"][-5:], delimit=False)+">"
|
|
||||||
print(" Access : {nb}-bit IFAC by {sig}".format(nb=ifstat["ifac_size"]*8, sig=sigstr))
|
|
||||||
|
|
||||||
if "i2p_b32" in ifstat and ifstat["i2p_b32"] != None:
|
|
||||||
print(" I2P B32 : {ep}".format(ep=str(ifstat["i2p_b32"])))
|
|
||||||
|
|
||||||
if "announce_queue" in ifstat and ifstat["announce_queue"] != None and ifstat["announce_queue"] > 0:
|
|
||||||
aqn = ifstat["announce_queue"]
|
|
||||||
if aqn == 1:
|
|
||||||
print(" Queued : {np} announce".format(np=aqn))
|
|
||||||
else:
|
else:
|
||||||
print(" Queued : {np} announces".format(np=aqn))
|
modestr = "Full"
|
||||||
|
|
||||||
print(" Traffic : {txb}↑\n {rxb}↓".format(rxb=size_str(ifstat["rxb"]), txb=size_str(ifstat["txb"])))
|
|
||||||
|
if ifstat["clients"] != None:
|
||||||
|
clients = ifstat["clients"]
|
||||||
|
if name.startswith("Shared Instance["):
|
||||||
|
cnum = max(clients-1,0)
|
||||||
|
if cnum == 1:
|
||||||
|
spec_str = " program"
|
||||||
|
else:
|
||||||
|
spec_str = " programs"
|
||||||
|
|
||||||
|
clients_string = "Serving : "+str(cnum)+spec_str
|
||||||
|
elif name.startswith("I2PInterface["):
|
||||||
|
if "i2p_connectable" in ifstat and ifstat["i2p_connectable"] == True:
|
||||||
|
cnum = max(clients-1,0)
|
||||||
|
if cnum == 1:
|
||||||
|
spec_str = " connected I2P endpoint"
|
||||||
|
else:
|
||||||
|
spec_str = " connected I2P endpoints"
|
||||||
|
|
||||||
|
clients_string = "Peers : "+str(cnum)+spec_str
|
||||||
|
else:
|
||||||
|
clients_string = ""
|
||||||
|
else:
|
||||||
|
clients_string = "Clients : "+str(clients)
|
||||||
|
|
||||||
|
else:
|
||||||
|
clients = None
|
||||||
|
|
||||||
|
print(" {n}".format(n=ifstat["name"]))
|
||||||
|
|
||||||
|
if "ifac_netname" in ifstat and ifstat["ifac_netname"] != None:
|
||||||
|
print(" Network : {nn}".format(nn=ifstat["ifac_netname"]))
|
||||||
|
|
||||||
|
print(" Status : {ss}".format(ss=ss))
|
||||||
|
|
||||||
|
if clients != None and clients_string != "":
|
||||||
|
print(" "+clients_string)
|
||||||
|
|
||||||
|
if not (name.startswith("Shared Instance[") or name.startswith("TCPInterface[Client") or name.startswith("LocalInterface[")):
|
||||||
|
print(" Mode : {mode}".format(mode=modestr))
|
||||||
|
|
||||||
|
if "bitrate" in ifstat and ifstat["bitrate"] != None:
|
||||||
|
print(" Rate : {ss}".format(ss=speed_str(ifstat["bitrate"])))
|
||||||
|
|
||||||
|
if "peers" in ifstat and ifstat["peers"] != None:
|
||||||
|
print(" Peers : {np} reachable".format(np=ifstat["peers"]))
|
||||||
|
|
||||||
|
if "ifac_signature" in ifstat and ifstat["ifac_signature"] != None:
|
||||||
|
sigstr = "<…"+RNS.hexrep(ifstat["ifac_signature"][-5:], delimit=False)+">"
|
||||||
|
print(" Access : {nb}-bit IFAC by {sig}".format(nb=ifstat["ifac_size"]*8, sig=sigstr))
|
||||||
|
|
||||||
|
if "i2p_b32" in ifstat and ifstat["i2p_b32"] != None:
|
||||||
|
print(" I2P B32 : {ep}".format(ep=str(ifstat["i2p_b32"])))
|
||||||
|
|
||||||
|
if "announce_queue" in ifstat and ifstat["announce_queue"] != None and ifstat["announce_queue"] > 0:
|
||||||
|
aqn = ifstat["announce_queue"]
|
||||||
|
if aqn == 1:
|
||||||
|
print(" Queued : {np} announce".format(np=aqn))
|
||||||
|
else:
|
||||||
|
print(" Queued : {np} announces".format(np=aqn))
|
||||||
|
|
||||||
|
print(" Traffic : {txb}↑\n {rxb}↓".format(rxb=size_str(ifstat["rxb"]), txb=size_str(ifstat["txb"])))
|
||||||
|
|
||||||
if "transport_id" in stats and stats["transport_id"] != None:
|
if "transport_id" in stats and stats["transport_id"] != None:
|
||||||
print("\n Reticulum Transport Instance "+RNS.prettyhexrep(stats["transport_id"])+" is running")
|
print("\n Reticulum Transport Instance "+RNS.prettyhexrep(stats["transport_id"])+" is running")
|
||||||
|
@ -100,7 +100,7 @@ at.
|
|||||||
To use the I2P interface, you must have an I2P router running
|
To use the I2P interface, you must have an I2P router running
|
||||||
on your system. The easiest way to acheive this is to download and
|
on your system. The easiest way to acheive this is to download and
|
||||||
install the `latest release <https://github.com/PurpleI2P/i2pd/releases/latest>`_
|
install the `latest release <https://github.com/PurpleI2P/i2pd/releases/latest>`_
|
||||||
of the ``ì2pd`` package. For more details about I2P, see the
|
of the ``i2pd`` package. For more details about I2P, see the
|
||||||
`geti2p.net website <https://geti2p.net/en/about/intro>`_.`
|
`geti2p.net website <https://geti2p.net/en/about/intro>`_.`
|
||||||
|
|
||||||
When an I2P router is running on your system, you can simply add
|
When an I2P router is running on your system, you can simply add
|
||||||
|
@ -121,7 +121,7 @@ at.</p>
|
|||||||
<p>To use the I2P interface, you must have an I2P router running
|
<p>To use the I2P interface, you must have an I2P router running
|
||||||
on your system. The easiest way to acheive this is to download and
|
on your system. The easiest way to acheive this is to download and
|
||||||
install the <a class="reference external" href="https://github.com/PurpleI2P/i2pd/releases/latest">latest release</a>
|
install the <a class="reference external" href="https://github.com/PurpleI2P/i2pd/releases/latest">latest release</a>
|
||||||
of the <code class="docutils literal notranslate"><span class="pre">ì2pd</span></code> package. For more details about I2P, see the
|
of the <code class="docutils literal notranslate"><span class="pre">i2pd</span></code> package. For more details about I2P, see the
|
||||||
<a class="reference external" href="https://geti2p.net/en/about/intro">geti2p.net website</a>.`</p>
|
<a class="reference external" href="https://geti2p.net/en/about/intro">geti2p.net website</a>.`</p>
|
||||||
<p>When an I2P router is running on your system, you can simply add
|
<p>When an I2P router is running on your system, you can simply add
|
||||||
an I2P interface to reticulum:</p>
|
an I2P interface to reticulum:</p>
|
||||||
|
File diff suppressed because one or more lines are too long
@ -100,8 +100,8 @@ at.
|
|||||||
To use the I2P interface, you must have an I2P router running
|
To use the I2P interface, you must have an I2P router running
|
||||||
on your system. The easiest way to acheive this is to download and
|
on your system. The easiest way to acheive this is to download and
|
||||||
install the `latest release <https://github.com/PurpleI2P/i2pd/releases/latest>`_
|
install the `latest release <https://github.com/PurpleI2P/i2pd/releases/latest>`_
|
||||||
of the ``ì2pd`` package. For more details about I2P, see the
|
of the ``i2pd`` package. For more details about I2P, see the
|
||||||
`geti2p.net website <https://geti2p.net/en/about/intro>`_.`
|
`geti2p.net website <https://geti2p.net/en/about/intro>`_.
|
||||||
|
|
||||||
When an I2P router is running on your system, you can simply add
|
When an I2P router is running on your system, you can simply add
|
||||||
an I2P interface to reticulum:
|
an I2P interface to reticulum:
|
||||||
|
Loading…
Reference in New Issue
Block a user