From 5913f61e7de83bceafded9aa731dd52867c68644 Mon Sep 17 00:00:00 2001 From: Mark Qvist Date: Mon, 7 Apr 2025 15:31:27 +0200 Subject: [PATCH] Cleanup --- RNS/Interfaces/BackboneInterface.py | 18 +++++------ RNS/Transport.py | 47 +++++++++++------------------ 2 files changed, 24 insertions(+), 41 deletions(-) diff --git a/RNS/Interfaces/BackboneInterface.py b/RNS/Interfaces/BackboneInterface.py index 4aa10bf..9acae87 100644 --- a/RNS/Interfaces/BackboneInterface.py +++ b/RNS/Interfaces/BackboneInterface.py @@ -225,7 +225,7 @@ class BackboneInterface(Interface): if client_socket and fileno == client_socket.fileno() and (event & select.EPOLLIN): try: received_bytes = client_socket.recv(4096) except Exception as e: - RNS.log(f"Error while reading from {spawned_interface}: {e}", RNS.LOG_ERROR) + RNS.log(f"Error while reading from {spawned_interface}: {e}", RNS.LOG_DEBUG) received_bytes = b"" if len(received_bytes): spawned_interface.receive(received_bytes) @@ -238,7 +238,7 @@ class BackboneInterface(Interface): written = client_socket.send(spawned_interface.transmit_buffer) except Exception as e: written = 0 - if not spawned_interface.detached: RNS.log(f"Error while writing to {spawned_interface}: {e}", RNS.LOG_ERROR) + if not spawned_interface.detached: RNS.log(f"Error while writing to {spawned_interface}: {e}", RNS.LOG_DEBUG) BackboneInterface.deregister_fileno(fileno) try: client_socket.close() except Exception as e: RNS.log(f"Error while closing socket for {spawned_interface}: {e}", RNS.LOG_ERROR) @@ -343,7 +343,7 @@ class BackboneInterface(Interface): if hasattr(listener_socket, "shutdown"): if callable(listener_socket.shutdown): try: listener_socket.shutdown(socket.SHUT_RDWR) - except Exception as e: RNS.log("Error while shutting down socket for "+str(self)+": "+str(e)) + except Exception as e: RNS.log("Error while shutting down socket for "+str(self)+": "+str(e), RNS.LOG_ERROR) def __str__(self): if ":" in self.bind_ip: @@ -455,16 +455,12 @@ class BackboneClientInterface(Interface): self.detached = True try: - if self.socket != None: - self.socket.shutdown(socket.SHUT_RDWR) - except Exception as e: - RNS.log("Error while shutting down socket for "+str(self)+": "+str(e)) + if self.socket != None: self.socket.shutdown(socket.SHUT_RDWR) + except Exception as e: RNS.log("Error while shutting down socket for "+str(self)+": "+str(e), RNS.LOG_ERROR) try: - if self.socket != None: - self.socket.close() - except Exception as e: - RNS.log("Error while closing socket for "+str(self)+": "+str(e)) + if self.socket != None: self.socket.close() + except Exception as e: RNS.log("Error while closing socket for "+str(self)+": "+str(e), RNS.LOG_ERROR) self.socket = None diff --git a/RNS/Transport.py b/RNS/Transport.py index e1d984d..bb4adea 100755 --- a/RNS/Transport.py +++ b/RNS/Transport.py @@ -21,6 +21,7 @@ # SOFTWARE. import os +import gc import RNS import time import math @@ -620,8 +621,7 @@ class Transport: RNS.log("Waiting path request for "+RNS.prettyhexrep(destination_hash)+" timed out and was removed", RNS.LOG_DEBUG) # Cull the tunnel table - stale_tunnels = [] - ti = 0 + stale_tunnels = []; ti = 0 for tunnel_id in Transport.tunnels: tunnel_entry = Transport.tunnels[tunnel_id] @@ -645,10 +645,8 @@ class Transport: if ti > 0: - if ti == 1: - RNS.log("Removed "+str(ti)+" tunnel path", RNS.LOG_EXTREME) - else: - RNS.log("Removed "+str(ti)+" tunnel paths", RNS.LOG_EXTREME) + if ti == 1: RNS.log("Removed "+str(ti)+" tunnel path", RNS.LOG_EXTREME) + else: RNS.log("Removed "+str(ti)+" tunnel paths", RNS.LOG_EXTREME) i = 0 for truncated_packet_hash in stale_reverse_entries: @@ -656,10 +654,8 @@ class Transport: i += 1 if i > 0: - if i == 1: - RNS.log("Released "+str(i)+" reverse table entry", RNS.LOG_EXTREME) - else: - RNS.log("Released "+str(i)+" reverse table entries", RNS.LOG_EXTREME) + if i == 1: RNS.log("Released "+str(i)+" reverse table entry", RNS.LOG_EXTREME) + else: RNS.log("Released "+str(i)+" reverse table entries", RNS.LOG_EXTREME) i = 0 for link_id in stale_links: @@ -667,10 +663,8 @@ class Transport: i += 1 if i > 0: - if i == 1: - RNS.log("Released "+str(i)+" link", RNS.LOG_EXTREME) - else: - RNS.log("Released "+str(i)+" links", RNS.LOG_EXTREME) + if i == 1: RNS.log("Released "+str(i)+" link", RNS.LOG_EXTREME) + else: RNS.log("Released "+str(i)+" links", RNS.LOG_EXTREME) i = 0 for destination_hash in stale_paths: @@ -678,10 +672,8 @@ class Transport: i += 1 if i > 0: - if i == 1: - RNS.log("Removed "+str(i)+" path", RNS.LOG_EXTREME) - else: - RNS.log("Removed "+str(i)+" paths", RNS.LOG_EXTREME) + if i == 1: RNS.log("Removed "+str(i)+" path", RNS.LOG_EXTREME) + else: RNS.log("Removed "+str(i)+" paths", RNS.LOG_EXTREME) i = 0 for destination_hash in stale_discovery_path_requests: @@ -689,10 +681,8 @@ class Transport: i += 1 if i > 0: - if i == 1: - RNS.log("Removed "+str(i)+" waiting path request", RNS.LOG_EXTREME) - else: - RNS.log("Removed "+str(i)+" waiting path requests", RNS.LOG_EXTREME) + if i == 1: RNS.log("Removed "+str(i)+" waiting path request", RNS.LOG_EXTREME) + else: RNS.log("Removed "+str(i)+" waiting path requests", RNS.LOG_EXTREME) i = 0 for tunnel_id in stale_tunnels: @@ -700,10 +690,8 @@ class Transport: i += 1 if i > 0: - if i == 1: - RNS.log("Removed "+str(i)+" tunnel", RNS.LOG_EXTREME) - else: - RNS.log("Removed "+str(i)+" tunnels", RNS.LOG_EXTREME) + if i == 1: RNS.log("Removed "+str(i)+" tunnel", RNS.LOG_EXTREME) + else: RNS.log("Removed "+str(i)+" tunnels", RNS.LOG_EXTREME) i = 0 for destination_hash in stale_path_states: @@ -711,10 +699,8 @@ class Transport: i += 1 if i > 0: - if i == 1: - RNS.log("Removed "+str(i)+" path state entry", RNS.LOG_EXTREME) - else: - RNS.log("Removed "+str(i)+" path state entries", RNS.LOG_EXTREME) + if i == 1: RNS.log("Removed "+str(i)+" path state entry", RNS.LOG_EXTREME) + else: RNS.log("Removed "+str(i)+" path state entries", RNS.LOG_EXTREME) Transport.tables_last_culled = time.time() @@ -732,6 +718,7 @@ class Transport: RNS.log("An exception occurred while running Transport jobs.", RNS.LOG_ERROR) RNS.log("The contained exception was: "+str(e), RNS.LOG_ERROR) + finally: gc.collect() Transport.jobs_running = False for packet in outgoing: