diff options
| author | Danilo M. <danix@danix.xyz> | 2026-11-09 18:25:59 +0100 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-11-09 18:25:59 +0100 |
| commit | 7f99167f0b6a3c83bf77e20bc5e03942b901fb71 (patch) | |
| tree | 6b60263b6f702e6088eae30087c6dfa2a5a71f4c /deckit/server.py | |
| parent | 03e2adab3fb58532ba1e32c2f01a9ec14f11e484 (diff) | |
| download | deck-it-7f99167f0b6a3c83bf77e20bc5e03942b901fb71.tar.gz deck-it-7f99167f0b6a3c83bf77e20bc5e03942b901fb71.zip | |
fix: OBS idle timeout, payload validation, workspace list
Diffstat (limited to 'deckit/server.py')
| -rw-r--r-- | deckit/server.py | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/deckit/server.py b/deckit/server.py index bbd92cf..bddbb00 100644 --- a/deckit/server.py +++ b/deckit/server.py @@ -129,14 +129,17 @@ class Handler(BaseHTTPRequestHandler): return self._send(404, str(e).encode()) if fn is None: return self._send(404, b"unknown action") - length = int(self.headers.get("Content-Length", 0) or 0) + try: + length = int(self.headers.get("Content-Length", 0) or 0) + except ValueError: + return self._send(400, b"Invalid Content-Length") if self.headers.get("Content-Type") != "application/json" or not 0 < length <= 4096: return self._send(400, b"Expected a small JSON body") try: result = fn(json.loads(self.rfile.read(length))) except module.ModuleError as e: return self._send(400, str(e).encode()) - except (ValueError, AttributeError): + except (ValueError, AttributeError, TypeError, KeyError): return self._send(400, b"Invalid request") if result is None: return self._send(204) |
