X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=hippotat.git;a=blobdiff_plain;f=server;h=b9aa6f26beacdd612905926996d7c4ae05cfc70d;hp=68f854148152d69ab01074407cc55276b982d4ab;hb=a9a369c7f91fd347f55460b74cc212b85b95404e;hpb=00192d6acf47a29fcedba761125ebd9ccfb84dba diff --git a/server b/server index 68f8541..b9aa6f2 100755 --- a/server +++ b/server @@ -12,6 +12,8 @@ from twisted.web.server import NOT_DONE_YET import syslog +import traceback + clients = { } #---------- "router" ---------- @@ -136,10 +138,13 @@ class Client(): def process_request(request, desca): # find client, update config, etc. - metadata = request.args['m'] + metadata = request.args[b'm'][0] metadata = metadata.split(b'\r\n') (ci_s, pw, tro) = metadata[0:3] desca['m[0,2]'] = [ci_s, tro] + ci_s = ci_s.decode('utf-8') + tro = int(tro) + desca['tro']= tro ci = ipaddr(ci_s) desca['ci'] = ci cl = clients[ci] @@ -150,7 +155,7 @@ def process_request(request, desca): raise ValueError('tro must be %d' % cl.target_requests_outstanding) try: - d = request.args['d'] + d = request.args[b'd'] desca['d'] = d except KeyError: d = '' @@ -174,11 +179,11 @@ class IphttpResource(twisted.web.resource.Resource): desca = {'d': None} try: process_request(request, desca) except Exception as e: - emsg = repr(e) + emsg = traceback.format_exc() log_http(desca, 'EXCEPTION ' + emsg) request.setHeader('Content-Type','text/plain; charset="utf-8"') request.setResponseCode(400) - return emsg.encode('utf-8') + return (emsg + ' # ' + repr(desca) + '\r\n').encode('utf-8') log_http(desca, '... [%s]' % id(request)) return NOT_DONE_YET