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): | ||||
|     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.txb = 0 | ||||
|         self.online = False | ||||
| @ -580,7 +580,7 @@ class I2PInterface(Interface): | ||||
| 
 | ||||
|         if peers != None: | ||||
|             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.OUT = True | ||||
|                 peer_interface.IN  = True | ||||
|  | ||||
| @ -936,6 +936,12 @@ class Reticulum: | ||||
|                 else: | ||||
|                     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 interface.b32 != None: | ||||
|                         ifstats["i2p_b32"] = interface.b32+".b32.i2p" | ||||
|  | ||||
| @ -59,86 +59,96 @@ def program_setup(configdir, dispall=False, verbosity = 0): | ||||
|         for ifstat in stats["interfaces"]: | ||||
|             name = ifstat["name"] | ||||
| 
 | ||||
|             if dispall or not (name.startswith("LocalInterface[") or name.startswith("TCPInterface[Client") or name.startswith("I2PInterfacePeer[Connected peer")): | ||||
|                 print("") | ||||
|             if dispall or not ( | ||||
|                 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"]: | ||||
|                     ss = "Up" | ||||
|                 else: | ||||
|                     ss = "Down" | ||||
|                 if not (name.startswith("I2PInterface[") and ("i2p_connectable" in ifstat and ifstat["i2p_connectable"] == False)): | ||||
|                     print("") | ||||
| 
 | ||||
|                 if ifstat["mode"] == RNS.Interfaces.Interface.Interface.MODE_ACCESS_POINT: | ||||
|                     modestr = "Access Point" | ||||
|                 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 | ||||
|                     if ifstat["status"]: | ||||
|                         ss = "Up" | ||||
|                     else: | ||||
|                         clients_string = "Clients : "+str(clients) | ||||
|                         ss = "Down" | ||||
| 
 | ||||
|                 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: | ||||
|                     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)) | ||||
|                     if ifstat["mode"] == RNS.Interfaces.Interface.Interface.MODE_ACCESS_POINT: | ||||
|                         modestr = "Access Point" | ||||
|                     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: | ||||
|                         print("    Queued  : {np} announces".format(np=aqn)) | ||||
|                  | ||||
|                 print("    Traffic : {txb}↑\n              {rxb}↓".format(rxb=size_str(ifstat["rxb"]), txb=size_str(ifstat["txb"]))) | ||||
|                         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["): | ||||
|                             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: | ||||
|             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 | ||||
| on your system. The easiest way to acheive this is to download and | ||||
| 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>`_.` | ||||
| 
 | ||||
| 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 | ||||
| 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> | ||||
| 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> | ||||
| <p>When an I2P router is running on your system, you can simply add | ||||
| 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 | ||||
| on your system. The easiest way to acheive this is to download and | ||||
| install the `latest release <https://github.com/PurpleI2P/i2pd/releases/latest>`_ | ||||
| of the ``ì2pd`` package. For more details about I2P, see the | ||||
| `geti2p.net website <https://geti2p.net/en/about/intro>`_.` | ||||
| of the ``i2pd`` package. For more details about I2P, see the | ||||
| `geti2p.net website <https://geti2p.net/en/about/intro>`_. | ||||
| 
 | ||||
| When an I2P router is running on your system, you can simply add | ||||
| an I2P interface to reticulum: | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user