I created a unified diff patch for ZopeHTTPServer which incorporates the improved exception handling. It is diffed against 1.9.0b2. You'll need to go into the ZopeHTTPServer directory to apply it. The other thing is: Upgrading. It looks like from the install program that if you do install over the old installation that it won't nuke your Data.bbb, which is good, but raises some other questions: 1) Generally, can you merge or otherwise transfer data from Data.bbb to another? I suspect the answer is going to be something like "loop over the keys". 2) How do you safely back up the database wrt things like locking and transactions? I also suspect a similar answer to #1... I'm not a previous Bobo user, as you can probably tell... -- Andy Dustman You should always say "spam" and "eggs" ComStar Communications Corp. instead of "foo" and "bar" (706) 549-7689 | PGP KeyID=0xC72F3F1D in Python examples. (Mark Lutz) --- ZopeHTTPServer.py.orig Fri Dec 11 16:14:29 1998 +++ ZopeHTTPServer.py Fri Dec 11 20:35:35 1998 @@ -349,24 +349,21 @@ def handle_request(self): """Handle one request, possibly blocking.""" - request, client_address = self.get_request() - if self.verify_request(request, client_address): - try: + request, client_address = None, None + try: + request, client_address = self.get_request() + if self.verify_request(request, client_address): self.process_request(request, client_address) - except SystemExit: - self.handle_error(request, client_address) - sys.exit(0) - except: - self.handle_error(request, client_address) + except SystemExit: + self.handle_error(request, client_address) + sys.exit(0) + except: + self.handle_error(request, client_address) class ThreadingHTTPServer(SocketServer.ThreadingMixIn, - BaseHTTPServer.HTTPServer): + NonThreadingHTTPServer): "A threading HTTPServer with some socket tweaks" - def server_bind(self): - self.socket.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1) - return BaseHTTPServer.HTTPServer.server_bind(self) - def try_to_become_nobody(): # from CGIHTTPServer