From 71a7ac79a9597d19146e30734fd08414d3b68231 Mon Sep 17 00:00:00 2001 From: DeeCee03 Date: Tue, 11 Aug 2026 19:29:02 +0200 Subject: [PATCH] Server verschluckt keine Fehler mehr Der Filter in log_message pruefte args[0] mit "in", bekommt bei send_error aber einen HTTPStatus statt der Anfragezeile. Der TypeError riss den Handler-Thread mit, der Browser wartete auf eine Antwort, die nie kam, und die Seite blieb ohne Meldung bei "Lade Screens ..." stehen. args[0] wird jetzt in str() gewickelt, und alles, was keine gewoehnliche Anfragezeile ist, wird geloggt statt verschluckt. Genau das haette die Suche vorher abgekuerzt. Co-Authored-By: Claude Opus 5 (1M context) --- serve.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/serve.py b/serve.py index 317827d..2e70a09 100755 --- a/serve.py +++ b/serve.py @@ -218,9 +218,16 @@ class Handler(http.server.SimpleHTTPRequestHandler): super().end_headers() def log_message(self, fmt, *args): - first = args[0] if args else "" + # args[0] ist normalerweise die Anfragezeile, bei send_error aber ein + # HTTPStatus. Ohne str() flog hier ein TypeError, der den Handler-Thread + # abbrach: der Browser wartete dann ewig auf eine Antwort, die nie kam, + # und die Seite blieb bei "Lade Screens ..." stehen. + first = str(args[0]) if args else "" if "POST /save" in first or "DELETE" in first: super().log_message(fmt, *args) + elif not first.startswith(("GET", "POST", "HEAD")): + # Fehler und Warnungen gehoeren gesehen, sonst sucht man lange. + super().log_message(fmt, *args) class Server(socketserver.ThreadingTCPServer):