From 461fc7ce0b034fd51fbeb2fe798a4292b219a671 Mon Sep 17 00:00:00 2001 From: Eli Ribble Date: Mon, 19 Jun 2023 18:10:47 -0700 Subject: [PATCH] Add magic check --- server.py | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/server.py b/server.py index 4207bd3..7f28be3 100644 --- a/server.py +++ b/server.py @@ -4,19 +4,32 @@ import logging LOGGER = logging.getLogger("server") +MAGIC = "e8437140-4347-48cc-a31d-dcdc944ffc16" + def main(): logging.basicConfig(level=logging.DEBUG) asyncio.run(run()) async def on_connect(reader, writer): LOGGER.info("connected") - data = await reader.read() - print(data.decode("UTF-8")) + data = await reader.read(36) + magic = data.decode("UTF-8") + LOGGER.debug("Received magic '%s'", magic) + if magic != MAGIC: + writer.write("ERR1: Magic not recognized".encode("UTF-8")) + writer.close() + LOGGER.info("Bad magic, closing connection.") + return + LOGGER.debug("Magic looks good.") + async def run(): server = await asyncio.start_server(on_connect, host="localhost", port=9988) async with server: - await server.serve_forever() + try: + await server.serve_forever() + except KeyboardInterrupt: + LOGGER.info("Exiting at user request.") if __name__ == "__main__": main()