Improved path utility output

This commit is contained in:
Mark Qvist 2021-09-25 11:27:43 +02:00
parent dd5133751e
commit f25906d44e
4 changed files with 33 additions and 3 deletions

View File

@ -504,6 +504,12 @@ class Reticulum:
if path == "interface_stats": if path == "interface_stats":
rpc_connection.send(self.get_interface_stats()) rpc_connection.send(self.get_interface_stats())
if path == "next_hop_if_name":
rpc_connection.send(self.get_next_hop_if_name(call["destination_hash"]))
if path == "next_hop":
rpc_connection.send(self.get_next_hop(call["destination_hash"]))
rpc_connection.close() rpc_connection.close()
except Exception as e: except Exception as e:
RNS.log("An error ocurred while handling RPC call from local client: "+str(e), RNS.LOG_ERROR) RNS.log("An error ocurred while handling RPC call from local client: "+str(e), RNS.LOG_ERROR)
@ -532,6 +538,24 @@ class Reticulum:
return stats return stats
def get_next_hop_if_name(self, destination):
if self.is_connected_to_shared_instance:
rpc_connection = multiprocessing.connection.Client(self.rpc_addr, authkey=self.rpc_key)
rpc_connection.send({"get": "next_hop_if_name", "destination_hash": destination})
response = rpc_connection.recv()
return response
else:
return str(RNS.Transport.next_hop_interface(destination))
def get_next_hop(self, destination):
if self.is_connected_to_shared_instance:
rpc_connection = multiprocessing.connection.Client(self.rpc_addr, authkey=self.rpc_key)
rpc_connection.send({"get": "next_hop", "destination_hash": destination})
response = rpc_connection.recv()
return response
else:
return RNS.Transport.next_hop(destination)
@staticmethod @staticmethod
def should_use_implicit_proof(): def should_use_implicit_proof():

View File

@ -0,0 +1,5 @@
import os
import glob
modules = glob.glob(os.path.dirname(__file__)+"/*.py")
__all__ = [ os.path.basename(f)[:-3] for f in modules if not f.endswith('__init__.py')]

View File

@ -37,8 +37,8 @@ def program_setup(configdir, destination_hexhash, verbosity):
i = (i+1)%len(syms) i = (i+1)%len(syms)
hops = RNS.Transport.hops_to(destination_hash) hops = RNS.Transport.hops_to(destination_hash)
next_hop = RNS.prettyhexrep(RNS.Transport.next_hop(destination_hash)) next_hop = RNS.prettyhexrep(reticulum.get_next_hop(destination_hash))
next_hop_interface = str(RNS.Transport.next_hop_interface(destination_hash)) next_hop_interface = reticulum.get_next_hop_if_name(destination_hash)
if hops > 1: if hops > 1:
ms = "s" ms = "s"

View File

@ -32,6 +32,7 @@ def program_setup(configdir, dispall=False, verbosity = 0):
for ifstat in ifstats: for ifstat in ifstats:
name = ifstat["name"] name = ifstat["name"]
print("")
if dispall or not (name.startswith("LocalInterface[") or name.startswith("TCPInterface[Client")): if dispall or not (name.startswith("LocalInterface[") or name.startswith("TCPInterface[Client")):
if ifstat["status"]: if ifstat["status"]:
ss = "Up" ss = "Up"
@ -53,7 +54,7 @@ def program_setup(configdir, dispall=False, verbosity = 0):
if clients != None: if clients != None:
print("\t"+clients_string) print("\t"+clients_string)
print("\tRX: {rxb}\n\tTX: {txb}".format(rxb=size_str(ifstat["rxb"]), txb=size_str(ifstat["txb"]))) print("\tRX: {rxb}\n\tTX: {txb}".format(rxb=size_str(ifstat["rxb"]), txb=size_str(ifstat["txb"])))
print("")
else: else:
print("Could not get RNS status") print("Could not get RNS status")