aboutsummaryrefslogtreecommitdiffstats
path: root/deckit/server.py
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-11-09 18:25:59 +0100
committerDanilo M. <danix@danix.xyz>2026-11-09 18:25:59 +0100
commit7f99167f0b6a3c83bf77e20bc5e03942b901fb71 (patch)
tree6b60263b6f702e6088eae30087c6dfa2a5a71f4c /deckit/server.py
parent03e2adab3fb58532ba1e32c2f01a9ec14f11e484 (diff)
downloaddeck-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.py7
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)