4 Commits

2 changed files with 12 additions and 3 deletions

View File

@@ -123,7 +123,10 @@ class BackendServer:
sock (socket.socket): The client socket to disconnect.
"""
self.logger.info(f"[-] Disconnecting {client}")
self.selector.unregister(client.socket)
try:
self.selector.unregister(client.socket)
except Exception as e:
self.logger.error(f"Error unregistering client {client}: {e}")
client.disconnect()
def _handle_connection(
@@ -168,9 +171,13 @@ class BackendServer:
client.outbound = client.outbound[sent:]
# TODO: wait for ACK from client
except ConnectionResetError as e:
self.logger.error(f"Connection reset by {client}, disconnect: {e}")
self._disconnect(client)
except Exception as e:
self.logger.error(f"Connection error for {client}: {e}")
self._disconnect(client)
def run(self) -> None:
"""Start the backend server."""
@@ -190,6 +197,8 @@ class BackendServer:
self._accept_connection(key.fileobj)
else:
self._handle_connection(key, mask)
time.sleep(0.001) # prevent 100% CPU usage
except Exception as e:
self.logger.error(f"Server error: {e}")
raise e

4
uv.lock generated
View File

@@ -319,8 +319,8 @@ wheels = [
[[package]]
name = "judas-protocol"
version = "0.1.0"
source = { git = "https://gitea.pufereq.pl/judas/judas_protocol.git#fd070b176347a0f7b81f937b189d8f50736f3514" }
version = "0.2.0"
source = { git = "https://gitea.pufereq.pl/judas/judas_protocol.git#bc1bf46388eb904738893a2f86b5050b4ce2489e" }
[[package]]
name = "judas-server"