From 41d83be23807134d21a8e18be01950e2929841d3 Mon Sep 17 00:00:00 2001 From: Andreas Wrede Date: Fri, 29 Apr 2016 18:45:51 +0200 Subject: [PATCH] handle aborted connections; fix decompress; set server version --- hbd | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/hbd b/hbd index 5de448f..a1bf841 100755 --- a/hbd +++ b/hbd @@ -144,7 +144,7 @@ def stodict(msg): if len(r0) == 1: return None if r0[0][0] == '!': # compressed - pk = zlib.uncompress(r0[1]) + pk = zlib.decompress(msg[len(r0[0])+1:]) d['ID'] = r0[0][1:] else: pk = r0[1] @@ -439,7 +439,7 @@ def readsock(sock): opkt = 'ACK' rmsg = 'ACK' else: - opkt = dicttos('ACK', rmsg) + opkt = dicttos('ACK', rmsg, host.cver > 1) # clients w/ ver 2+ can cope ss=sock.sendto(opkt, addr) if DEBUG > 2: print "sendto1: %s (%s) %s %s" % (addr, len(opkt), op, str(rmsg)[:50]) @@ -490,10 +490,10 @@ def updatecode(ucode, uname): rmsg = {'csum': icsum, 'code': new_code.encode('base64','strict') } Host.hosts[uname].cmds.append(('UPD',rmsg)) return fail -# -# -#class HttpServer(BaseHTTPServer.HTTPServer): +# +# Web Server +# class HttpServer(SocketServer.ThreadingMixIn, BaseHTTPServer.HTTPServer): allow_reuse_address = True def threaded(): @@ -502,6 +502,20 @@ class HttpServer(SocketServer.ThreadingMixIn, BaseHTTPServer.HTTPServer): # class HttpHandler(BaseHTTPServer.BaseHTTPRequestHandler): + server_version = "HeartbeatHTTP/%s" % VER + + def version_string(self): + return self.server_version + + + def handle(self): + try: + return BaseHTTPServer.BaseHTTPRequestHandler.handle(self) + except Exception as e: + self.log_error("Request went away: %r", e) + self.close_connection = 1 + return + def do_HEAD(self): self.setheaders(200)