From 5f9c5e8c358394e70b766ec27b2e5889a730dc01 Mon Sep 17 00:00:00 2001 From: "Namhyeon, Go" Date: Mon, 19 Feb 2024 01:48:15 +0900 Subject: [PATCH] reduce memory usage --- server.py | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/server.py b/server.py index 267e410..c398f9d 100644 --- a/server.py +++ b/server.py @@ -252,14 +252,17 @@ def proxy_server(webserver, port, scheme, method, url, conn, addr, data): sock.sendall(data) i = 0 + buffered = b'' while True: chunk = sock.recv(buffer_size) if not chunk: break - response += chunk - #if proxy_check_filtered(response, webserver, port, scheme, method, url): - # break - #conn.send(chunk) + buffered += chunk + if proxy_check_filtered(buffered, webserver, port, scheme, method, url): + break + conn.send(chunk) + if len(buffered) > buffer_size: + buffered = buffered[:-buffer_size] # reduce memory usage i += 1 if not proxy_check_filtered(response, webserver, port, scheme, method, url): @@ -294,11 +297,14 @@ def proxy_server(webserver, port, scheme, method, url, conn, addr, data): i = 0 relay = requests.post(server_url, headers=proxy_data['headers'], data=raw_data, stream=True) + buffered = b'' for chunk in relay.iter_content(chunk_size=buffer_size): - response += chunk - #if proxy_check_filtered(response, webserver, port, scheme, method, url): - # break - #conn.send(chunk) + buffered += chunk + if proxy_check_filtered(buffered, webserver, port, scheme, method, url): + break + conn.send(chunk) + if len(buffered) > buffer_size: + buffered = buffered[:-buffer_size] # reduce memory usage i += 1 if not proxy_check_filtered(response, webserver, port, scheme, method, url):