ser2http4mt.py: Improve error and response handling

This commit is contained in:
Dominic Höglinger 2025-10-25 06:55:14 +02:00
parent c9dcbff5fa
commit 2f882af7b3

View File

@ -108,14 +108,18 @@ class RequestHandler(BaseHTTPRequestHandler):
self.send_response(200) self.send_response(200)
self.send_header('Content-Type', 'application/x-protobuf') self.send_header('Content-Type', 'application/x-protobuf')
self.end_headers() self.end_headers()
##time.sleep(0.3) try:
pkt = self.queue.get() pkt = self.queue.get()
b = pkt.SerializeToString() b = pkt.SerializeToString()
try:
self.wfile.write(b) self.wfile.write(b)
except BrokenPipeError as ex: except BrokenPipeError as ex:
print(f"$ Error - Client disconnected early: {ex}")
self.send_error(500, str(ex)) self.send_error(500, str(ex))
except OSError as ex: except OSError as ex:
print(f"$ Error - Client disconnected early: {ex}")
self.send_error(500, str(ex))
except Exception as ex:
print(f"$ Error: {ex}")
self.send_error(500, str(ex)) self.send_error(500, str(ex))
return "" return ""
@ -127,6 +131,8 @@ class RequestHandler(BaseHTTPRequestHandler):
try: try:
clen = int(self.headers['Content-Length']) clen = int(self.headers['Content-Length'])
protobuf_writer(ser, self.rfile.read(clen)) protobuf_writer(ser, self.rfile.read(clen))
self.send_response(200)
self.end_headers()
return "" return ""
except Exception as ex: except Exception as ex:
print(f"$ Error: {ex}") print(f"$ Error: {ex}")