Update data handling in Server class to accumulate and send multiple chunks from the send queue
This commit is contained in:
@@ -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')
|
||||||
|
|||||||
Reference in New Issue
Block a user