Update data handling in Server class to accumulate and send multiple chunks from the send queue

This commit is contained in:
2025-09-26 17:50:50 -05:00
parent a2ad0df0de
commit 3df0ee2fba

View File

@@ -99,13 +99,16 @@ class Server(AbstractTunnel):
self.tunnel.logger.debug(f"Received {len(client_data)} bytes from client") self.tunnel.logger.debug(f"Received {len(client_data)} bytes from client")
self.tunnel._recv_queue.put(client_data) self.tunnel._recv_queue.put(client_data)
server_data = b"" server_data_parts = []
if not self.tunnel._send_queue.empty(): while not self.tunnel._send_queue.empty():
try: try:
server_data = self.tunnel._send_queue.get_nowait() server_data_parts.append(self.tunnel._send_queue.get_nowait())
self.tunnel.logger.debug(f"Sending {len(server_data)} bytes to client")
except Empty: except Empty:
pass break
server_data = b"".join(server_data_parts)
if server_data:
self.tunnel.logger.debug(f"Sending {len(server_data)} bytes ({len(server_data_parts)} chunks) to client")
self.send_response(200) self.send_response(200)
self.send_header('Content-Type', 'application/octet-stream') self.send_header('Content-Type', 'application/octet-stream')