def listen(server, port, output, excqueue=None): RootedHTTPServer.allow_reuse_address = True try: httpd = RootedHTTPServer( output, (server, port), ComplexHTTPRequestHandler) except OSError as e: logging.error("Could not listen on port %s, server %s.", port, server) if excqueue is not None: excqueue.put(traceback.format_exception_only(type(e), e)[-1]) return logging.info("Serving at port %s, server %s.", port, server) try: httpd.serve_forever() except Exception as e: if excqueue is not None: excqueue.put(traceback.format_exception_only(type(e), e)[-1]) return
def listen(server, port, output, excqueue=None): RootedHTTPServer.allow_reuse_address = True try: httpd = RootedHTTPServer( output, (server, port), ComplexHTTPRequestHandler) except OSError as e: logging.error("Could not listen on port %s, server %s.", port, server) if excqueue is not None: excqueue.put(traceback.format_exception_only(type(e), e)[-1]) return try: print("\nServing site at: {}:{} - Tap CTRL-C to stop".format( server, port)) httpd.serve_forever() except Exception as e: if excqueue is not None: excqueue.put(traceback.format_exception_only(type(e), e)[-1]) return except KeyboardInterrupt: print("\nKeyboard interrupt received. Shutting down server.") httpd.socket.close()