Browse code

Add server error handling

Robert Cranston authored on 18/07/2025 19:34:06
Showing 1 changed files

  • serve.py index c257e18..2fe084a 100755
... ...
@@ -20,13 +20,19 @@ class Handler(http.server.SimpleHTTPRequestHandler):
20 20
         super().__init__(*args, **kwargs, directory=PUBLIC)
21 21
 
22 22
     def do_POST(self):
23
-        length = int(self.headers["Content-Length"])
24
-        ext    = str(self.headers["Content-Type"]).split("/")[1]
25
-        base   = datetime.datetime.now().strftime("%Y-%m-%d_%H-%M-%S_%f")
26
-        name   = f"{CAMERA}/{base}.{ext}"
27
-        self.log_message("Receiving '%s'", name)
28
-        with open(name, "wb") as f:
29
-            f.write(self.rfile.read(length))
23
+        try:
24
+            length = int(self.headers["Content-Length"])
25
+            ext    = str(self.headers["Content-Type"]).split("/")[1]
26
+        except:
27
+            return self.send_error(400)
28
+        try:
29
+            base = datetime.datetime.now().strftime("%Y-%m-%d_%H-%M-%S_%f")
30
+            name = f"{CAMERA}/{base}.{ext}"
31
+            self.log_message("Receiving '%s'", name)
32
+            with open(name, "wb") as f:
33
+                f.write(self.rfile.read(length))
34
+        except:
35
+            return self.send_error(500)
30 36
         self.send_response(200, name)
31 37
         self.end_headers()
32 38