From 0c9d2d41a462782c3ffd10cd914082ff1c168bad Mon Sep 17 00:00:00 2001 From: Jose Henrique Date: Wed, 6 Dec 2023 17:15:01 -0300 Subject: [PATCH] Update proxy.py with buffer size constant and localized print statement --- trabalho5/proxy.py | 25 +++++++++++++------------ trabalho5/proxy.sha256sum | 2 +- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/trabalho5/proxy.py b/trabalho5/proxy.py index ec17bb6..cb9c374 100644 --- a/trabalho5/proxy.py +++ b/trabalho5/proxy.py @@ -7,6 +7,7 @@ import logging import logging.handlers from logging import config +BUFFER_SIZE = 32 * 1024 CURRENT_THREADS = 0 MAX_THREADS = 10 BACKLOG = 50 @@ -68,7 +69,7 @@ class Server: self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.sock.bind((host, port)) self.sock.listen(BACKLOG) - print(f"Listening at: http://{host}:{port}") + print(f"Proxy executando em: http://{host}:{port}") def thread_check(self): global CURRENT_THREADS, MAX_THREADS @@ -99,7 +100,7 @@ def is_valid_status_code(status_code:str): return False def connectionHandle(client_socket, client_address): - request = client_socket.recv(16 * 1024) + request = client_socket.recv(BUFFER_SIZE) logger = Logger.instance() if len(request) == 0: @@ -112,9 +113,9 @@ def connectionHandle(client_socket, client_address): client_socket.close() return - # if "CONNECT" in raw_request: - # client_socket.sendall(b"HTTP/1.1 200 Connection Established\r\n\r\n") - # request = client_socket.recv(16 * 1024) + if "CONNECT" in raw_request: + client_socket.sendall(b"HTTP/1.1 200 Connection Established\r\n\r\n") + request = client_socket.recv(BUFFER_SIZE) request_url = raw_request.split(' ')[1] request_host = "" @@ -132,12 +133,12 @@ def connectionHandle(client_socket, client_address): request_port = int(request_host.split(':')[1]) request_host = request_host.split(':')[0] - if "monitorando" in request_url: + if "monitorando" in request_url.lower(): body = open('forbidden.html', 'r').read() client_socket.sendall(b"HTTP/1.1 403 Forbidden\r\n\r\n") client_socket.sendall(body.encode()) client_socket.close() - logger.info(f"REQUEST [{client_address[0]}:{client_address[1]}] to [{request_host}:{request_port}] - 403 Forbidden") + logger.info(f"REQUEST [{client_address[0]}:{client_address[1]}] to [{request_host}:{request_port}] - 'Monitorando' - 403 Forbidden") return server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) @@ -150,7 +151,7 @@ def connectionHandle(client_socket, client_address): break try: if server_socket in triple: - data = server_socket.recv(16 * 1024) + data = server_socket.recv(BUFFER_SIZE) if not data: break @@ -158,14 +159,14 @@ def connectionHandle(client_socket, client_address): status_code = data.decode().split('\r\n')[0].split(' ')[1:] status_code = ' '.join(status_code) if is_valid_status_code(status_code): - logger.info(f"PROXY [{client_address[0]}:{client_address[1]}] to [{request_host}:{request_port}] - {status_code}") + logger.info(f"REQUEST [{client_address[0]}:{client_address[1]}] to [{request_host}:{request_port}] - {status_code}") except UnicodeDecodeError: - logger.info(f"PROXY [{client_address[0]}:{client_address[1]}] to [{request_host}:{request_port}]") + logger.info(f"REQUEST [{client_address[0]}:{client_address[1]}] to [{request_host}:{request_port}]") pass client_socket.send(data) if client_socket in triple: - data = client_socket.recv(16 * 1024) + data = client_socket.recv(BUFFER_SIZE) if not data: break @@ -198,7 +199,7 @@ def verify_code_integrity(): print('Arquivo do proxy verificado!') if __name__ == '__main__': - # verify_code_integrity() + verify_code_integrity() try: ser = Server(host="0.0.0.0", port=8080) diff --git a/trabalho5/proxy.sha256sum b/trabalho5/proxy.sha256sum index d71a27e..24a8354 100644 --- a/trabalho5/proxy.sha256sum +++ b/trabalho5/proxy.sha256sum @@ -1 +1 @@ -24d2be62b48be63f31093585f52f7887 \ No newline at end of file +dd8f33d81858978c4fec0eb3c2f0acb768028a10d80428417aae91bf86b343d3 \ No newline at end of file