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) <noreply@anthropic.com>
This commit is contained in:
dejanandClaude Opus 5 committed 2026-08-11 19:29:02 +02:00
1 parent 3f72d892c5
commit 71a7ac79a9
1 file changed
+8 -1
+8 -1
View File
@@ -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):