From bd50cd7e1ee886794cf2331d312a8fd83e150956 Mon Sep 17 00:00:00 2001 From: randomuser Date: Mon, 19 Jul 2021 15:20:26 -0500 Subject: [PATCH] simplify the file sending code so the canonical implimentation is sendFileArray --- esgd.py | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/esgd.py b/esgd.py index 43c6413..7fb4ad4 100644 --- a/esgd.py +++ b/esgd.py @@ -48,10 +48,13 @@ def invalid(context): def sendFile(file, context): with open(file, "r") as fd: - [context.request.sendall( - (i.rstrip() + "\r\n").encode("utf-8") - ) for i in fd.readlines()] - context.request.sendall(b".\r\n") + sendFileArray(fd.readlines(), context) + +def sendFileArray(arr, context): + [context.request.sendall( + (i.rstrip() + "\r\n").encode("utf-8") + ) for i in arr] + context.request.sendall(b".\r\n") def cgi(file, query, context): env = {} @@ -81,22 +84,17 @@ class gopherHandler(socketserver.BaseRequestHandler): invalid(self) return - print(self.client_address) - try: file = returnRelative(parsed[0]) except RequestError: notFound(self) return if fileCGI(file[0]): - ret = cgi(file[0], parsed[1], self) - for i in ret: - self.request.sendall((i + '\r\n').encode('utf-8')) - self.request.sendall(b'.\r\n') + sendFileArray(cgi(file[0], parsed[1], self), self) elif fileSendable(file[0]): sendFile(file[0], self) else: notFound(self) if __name__ == "__main__": - HOST, PORT = "localhost", 72 + HOST, PORT = "localhost", 75 with socketserver.TCPServer((HOST, PORT), gopherHandler) as server: server.serve_forever()