about summary refs log tree commit diff
path: root/main.py
diff options
context:
space:
mode:
authorUltraQbik <no1skill@yandex.ru>2024-08-20 18:53:20 +0300
committerUltraQbik <no1skill@yandex.ru>2024-08-20 18:53:20 +0300
commit66b129b33d4348c97b4c6817df55fc27cbb7cb3d (patch)
tree4e7c619d9f74c98b09aae20deb5d29eebfbef406 /main.py
parent849fd5fedc9cddb051b6b29f2488f595afec0ac8 (diff)
downloadhttpy-66b129b33d4348c97b4c6817df55fc27cbb7cb3d.tar.gz
httpy-66b129b33d4348c97b4c6817df55fc27cbb7cb3d.zip
Exception handling (kind of)
Diffstat (limited to 'main.py')
-rw-r--r--main.py25
1 files changed, 18 insertions, 7 deletions
diff --git a/main.py b/main.py
index 636c5f0..6f824da 100644
--- a/main.py
+++ b/main.py
@@ -143,14 +143,21 @@ class HTTPServer:
             request: Request = Request.create(raw_request)
 
             # handle requests
-            match request.type:
-                case "GET":
-                    await self.handle_get_request(client, request)
-                case _:
-                    pass
+            try:
+                match request.type:
+                    case "GET":
+                        await self.handle_get_request(client, request)
+                    case _:
+                        break
+
+            # break on exception
+            except Exception as e:
+                print(e)
+                break
 
-            self._close_client(client)
+            # break the connection
             break
+        self._close_client(client)
 
     @staticmethod
     async def handle_get_request(client: socket.socket, request: Request):
@@ -179,16 +186,20 @@ class HTTPServer:
         :param headers: headers to include
         """
 
+        # if data was not given
         if data is None:
             data = bytes()
 
+        # if headers were not given
         if headers is None:
             headers = dict()
 
+        # format headers
         byte_header = bytearray()
         for key, value in headers.items():
             byte_header += f"{key}: {value}\r\n".encode("ascii")
 
+        # send response to the client
         client.sendall(
             b'HTTP/1.1 ' +
             get_response_code(response) +
@@ -240,7 +251,7 @@ class HTTPServer:
 
 
 def main():
-    server = HTTPServer(port=13701)
+    server = HTTPServer(port=13700)
     server.start()