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

4
uv.lock generated
View File

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