mirror of
https://github.com/markqvist/Reticulum.git
synced 2025-06-20 04:34:19 -04:00
Clean BackboneInterface file descriptor refs immediately
This commit is contained in:
parent
a12b630a4e
commit
194f6aef1d
1 changed files with 3 additions and 0 deletions
|
@ -231,6 +231,7 @@ class BackboneInterface(Interface):
|
||||||
if len(received_bytes): spawned_interface.receive(received_bytes)
|
if len(received_bytes): spawned_interface.receive(received_bytes)
|
||||||
else:
|
else:
|
||||||
BackboneInterface.deregister_fileno(fileno); client_socket.close()
|
BackboneInterface.deregister_fileno(fileno); client_socket.close()
|
||||||
|
if fileno in BackboneInterface.spawned_interface_filenos: BackboneInterface.spawned_interface_filenos.pop(fileno)
|
||||||
spawned_interface.receive(received_bytes)
|
spawned_interface.receive(received_bytes)
|
||||||
|
|
||||||
elif client_socket and fileno == client_socket.fileno() and (event & select.EPOLLOUT):
|
elif client_socket and fileno == client_socket.fileno() and (event & select.EPOLLOUT):
|
||||||
|
@ -240,6 +241,7 @@ class BackboneInterface(Interface):
|
||||||
written = 0
|
written = 0
|
||||||
if not spawned_interface.detached: RNS.log(f"Error while writing to {spawned_interface}: {e}", RNS.LOG_DEBUG)
|
if not spawned_interface.detached: RNS.log(f"Error while writing to {spawned_interface}: {e}", RNS.LOG_DEBUG)
|
||||||
BackboneInterface.deregister_fileno(fileno)
|
BackboneInterface.deregister_fileno(fileno)
|
||||||
|
if fileno in BackboneInterface.spawned_interface_filenos: BackboneInterface.spawned_interface_filenos.pop(fileno)
|
||||||
try: client_socket.close()
|
try: client_socket.close()
|
||||||
except Exception as e: RNS.log(f"Error while closing socket for {spawned_interface}: {e}", RNS.LOG_ERROR)
|
except Exception as e: RNS.log(f"Error while closing socket for {spawned_interface}: {e}", RNS.LOG_ERROR)
|
||||||
spawned_interface.receive(b"")
|
spawned_interface.receive(b"")
|
||||||
|
@ -251,6 +253,7 @@ class BackboneInterface(Interface):
|
||||||
|
|
||||||
elif client_socket and fileno == client_socket.fileno() and event & (select.EPOLLHUP):
|
elif client_socket and fileno == client_socket.fileno() and event & (select.EPOLLHUP):
|
||||||
BackboneInterface.deregister_fileno(fileno)
|
BackboneInterface.deregister_fileno(fileno)
|
||||||
|
if fileno in BackboneInterface.spawned_interface_filenos: BackboneInterface.spawned_interface_filenos.pop(fileno)
|
||||||
try: client_socket.close()
|
try: client_socket.close()
|
||||||
except Exception as e: RNS.log(f"Error while closing socket for {spawned_interface}: {e}", RNS.LOG_ERROR)
|
except Exception as e: RNS.log(f"Error while closing socket for {spawned_interface}: {e}", RNS.LOG_ERROR)
|
||||||
spawned_interface.receive(b"")
|
spawned_interface.receive(b"")
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue