handle aborted connections; fix decompress; set server version
This commit is contained in:
@@ -144,7 +144,7 @@ def stodict(msg):
|
|||||||
if len(r0) == 1:
|
if len(r0) == 1:
|
||||||
return None
|
return None
|
||||||
if r0[0][0] == '!': # compressed
|
if r0[0][0] == '!': # compressed
|
||||||
pk = zlib.uncompress(r0[1])
|
pk = zlib.decompress(msg[len(r0[0])+1:])
|
||||||
d['ID'] = r0[0][1:]
|
d['ID'] = r0[0][1:]
|
||||||
else:
|
else:
|
||||||
pk = r0[1]
|
pk = r0[1]
|
||||||
@@ -439,7 +439,7 @@ def readsock(sock):
|
|||||||
opkt = 'ACK'
|
opkt = 'ACK'
|
||||||
rmsg = 'ACK'
|
rmsg = 'ACK'
|
||||||
else:
|
else:
|
||||||
opkt = dicttos('ACK', rmsg)
|
opkt = dicttos('ACK', rmsg, host.cver > 1) # clients w/ ver 2+ can cope
|
||||||
ss=sock.sendto(opkt, addr)
|
ss=sock.sendto(opkt, addr)
|
||||||
if DEBUG > 2: print "sendto1: %s (%s) %s %s" % (addr, len(opkt), op, str(rmsg)[:50])
|
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') }
|
rmsg = {'csum': icsum, 'code': new_code.encode('base64','strict') }
|
||||||
Host.hosts[uname].cmds.append(('UPD',rmsg))
|
Host.hosts[uname].cmds.append(('UPD',rmsg))
|
||||||
return fail
|
return fail
|
||||||
#
|
|
||||||
#
|
|
||||||
|
|
||||||
#class HttpServer(BaseHTTPServer.HTTPServer):
|
#
|
||||||
|
# Web Server
|
||||||
|
#
|
||||||
class HttpServer(SocketServer.ThreadingMixIn, BaseHTTPServer.HTTPServer):
|
class HttpServer(SocketServer.ThreadingMixIn, BaseHTTPServer.HTTPServer):
|
||||||
allow_reuse_address = True
|
allow_reuse_address = True
|
||||||
def threaded():
|
def threaded():
|
||||||
@@ -502,6 +502,20 @@ class HttpServer(SocketServer.ThreadingMixIn, BaseHTTPServer.HTTPServer):
|
|||||||
#
|
#
|
||||||
class HttpHandler(BaseHTTPServer.BaseHTTPRequestHandler):
|
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):
|
def do_HEAD(self):
|
||||||
self.setheaders(200)
|
self.setheaders(200)
|
||||||
|
|||||||
Reference in New Issue
Block a user