diff options
author | Rob Austein <sra@hactrn.net> | 2011-10-05 16:30:24 +0000 |
---|---|---|
committer | Rob Austein <sra@hactrn.net> | 2011-10-05 16:30:24 +0000 |
commit | 72e42a6508ff19a315a0257dda4a710bc195dffa (patch) | |
tree | 34785d51be76bdb31b72784dd527125145b1ebc9 /rpkid/rpki/http.py | |
parent | 03d8dcaf85e21fe621f020c4fb34fdecb6ac4cca (diff) |
Add global traceback control; this closes #95. Clean up some
"except:" clauses that should have been "except Exception:".
svn path=/rpkid/rpki-sql-setup.py; revision=4014
Diffstat (limited to 'rpkid/rpki/http.py')
-rw-r--r-- | rpkid/rpki/http.py | 31 |
1 files changed, 14 insertions, 17 deletions
diff --git a/rpkid/rpki/http.py b/rpkid/rpki/http.py index 1638449a..71bb02f2 100644 --- a/rpkid/rpki/http.py +++ b/rpkid/rpki/http.py @@ -453,9 +453,7 @@ class http_stream(asynchat.async_chat): etype = sys.exc_info()[0] if etype in (SystemExit, rpki.async.ExitNow): raise - if self.show_tracebacks: - self.log("Error in HTTP stream handler", rpki.log.warn) - rpki.log.traceback() + rpki.log.traceback(self.show_tracebacks) if etype is not rpki.exceptions.HTTPClientAborted: self.log("Closing due to error", rpki.log.warn) self.close() @@ -536,8 +534,7 @@ class http_server(http_stream): except (rpki.async.ExitNow, SystemExit): raise except Exception, e: - if self.show_tracebacks: - rpki.log.traceback() + rpki.log.traceback(self.show_tracebacks) self.send_error(500, "Unhandled exception %s" % e) else: self.send_error(code = error[0], reason = error[1]) @@ -606,10 +603,9 @@ class http_listener(asyncore.dispatcher): self.setsockopt(socket.IPPROTO_IPV6, socket.IPV6_V6ONLY, 1) self.bind(sockaddr) self.listen(5) - except: - self.log("Couldn't set up HTTP listener", rpki.log.warn) - if self.show_tracebacks: - rpki.log.traceback() + except Exception, e: + self.log("Couldn't set up HTTP listener: %s" % e, rpki.log.warn) + rpki.log.traceback(self.show_tracebacks) self.close() for h in handlers: self.log("Handling %s" % h[0]) @@ -625,8 +621,8 @@ class http_listener(asyncore.dispatcher): http_server(sock = s, handlers = self.handlers) except (rpki.async.ExitNow, SystemExit): raise - except: - self.log("Unable to accept connection") + except Exception, e: + self.log("Unable to accept connection: %s" % e) self.handle_error() def handle_error(self): @@ -636,8 +632,7 @@ class http_listener(asyncore.dispatcher): if sys.exc_info()[0] in (SystemExit, rpki.async.ExitNow): raise self.log("Error in HTTP listener", rpki.log.warn) - if self.show_tracebacks: - rpki.log.traceback() + rpki.log.traceback(self.show_tracebacks) class http_client(http_stream): """ @@ -702,7 +697,7 @@ class http_client(http_stream): self.update_timeout() except (rpki.async.ExitNow, SystemExit): raise - except: + except Exception: self.handle_error() def handle_connect(self): @@ -925,13 +920,15 @@ class http_queue(object): req.errback(result) except (rpki.async.ExitNow, SystemExit): raise - except: + except Exception: # # If we get here, we may have lost the event chain. Not - # obvious what we can do about it at this point. + # obvious what we can do about it at this point, but force a + # traceback so that it will be somewhat obvious that something + # really bad happened. # self.log("Exception in exception callback", rpki.log.warn) - rpki.log.traceback() + rpki.log.traceback(True) self.log("Queue: %r" % self.queue) |