diff options
author | Rob Austein <sra@hactrn.net> | 2007-09-14 21:27:19 +0000 |
---|---|---|
committer | Rob Austein <sra@hactrn.net> | 2007-09-14 21:27:19 +0000 |
commit | 8ec96ec42e7f977a238a01187106635ffe87ffe4 (patch) | |
tree | 24f02e33eea50cf19978d8b350000d598b51f810 /scripts/rpki/https.py | |
parent | abe75960b1c9adcd29cfdc1ff4cb2616d178f42e (diff) |
Cleanup
svn path=/scripts/http-server.py; revision=959
Diffstat (limited to 'scripts/rpki/https.py')
-rw-r--r-- | scripts/rpki/https.py | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/scripts/rpki/https.py b/scripts/rpki/https.py index 1ac5ff45..3abd5bb6 100644 --- a/scripts/rpki/https.py +++ b/scripts/rpki/https.py @@ -31,7 +31,9 @@ def client(msg, privateKey, certChain, x509TrustList, host="localhost", port=443 if response.status == httplib.OK: return response.read() else: - raise RuntimeError, response.read() + r = response.read() + print "ERROR: Got:", response.status, r + raise RuntimeError, (response.status, r) class requestHandler(BaseHTTPServer.BaseHTTPRequestHandler): """Derived type to supply POST handler.""" @@ -42,16 +44,18 @@ class requestHandler(BaseHTTPServer.BaseHTTPRequestHandler): """POST handler.""" assert self.headers["Content-Type"] == rpki_content_type query_string = self.rfile.read(int(self.headers["Content-Length"])) - rcode = None - try: - handler = self.rpki_handlers[self.path] - except KeyError: - rcode, rtext = 404, "" - if rcode is None: + handler = None + for s,h in self.rpki_handlers: + if self.path.startswith(s): + handler = h + break + if handler is None: + rcode, rtext = 404, "No handler found for URL " + self.path + else: try: rcode, rtext = handler(query=query_string, path=self.path) - except: - rcode, rtext = 500, "" + except Exception, edata: + rcode, rtext = 500, "Unhandled exception %s" % edata self.send_response(rcode) self.send_header("Content-Type", rpki_content_type) self.end_headers() @@ -82,6 +86,9 @@ class httpServer(tlslite.api.TLSSocketServerMixIn, BaseHTTPServer.HTTPServer): def server(handlers, privateKey, certChain, port=4433, host=""): """Run an HTTPS server and wait (forever) for connections.""" + if not isinstance(handlers, (tuple, list)): + handlers = (("/", handlers),) + class boundRequestHandler(requestHandler): rpki_handlers = handlers |