diff --git a/eventlet/wsgi.py b/eventlet/wsgi.py index 230401f..204ef23 100644 --- a/eventlet/wsgi.py +++ b/eventlet/wsgi.py @@ -92,12 +92,6 @@ MAX_REQUEST_LINE = 8192 class HttpProtocol(BaseHTTPServer.BaseHTTPRequestHandler): protocol_version = 'HTTP/1.1' - def log_message(self, format, *args): - self.server.log_message("(%s) %s - - [%s] %s" % ( - self.server.pid, - self.address_string(), - self.log_date_time_string(), - format % args)) def handle_one_request(self): if self.server.max_http_version: @@ -248,9 +242,14 @@ class HttpProtocol(BaseHTTPServer.BaseHTTPRequestHandler): ## Read and discard body self.environ['eventlet.input'].read() finish = time.time() - self.log_message( - '"%s" %s %s %.6f\n' % ( - self.requestline, status_code[0], length[0], finish - start)) + + self.server.log_message('%s - - [%s] "%s" %s %s %.6f\n' % ( + self.address_string(), + self.log_date_time_string(), + self.requestline, + status_code[0], + length[0], + finish - start)) def get_environ(self): env = self.server.get_environ() @@ -367,7 +366,11 @@ def server(sock, site, log=None, environ=None, max_size=None, max_http_version=D print "(%s) wsgi starting up on %s://%s%s/" % (os.getpid(), scheme, host, port) while True: try: - client_socket = sock.accept() + try: + client_socket = sock.accept() + except socket.error, e: + if e[0] != errno.EPIPE and e[0] != errno.EBADF: + raise pool.execute_async(serv.process_request, client_socket) except KeyboardInterrupt: api.get_hub().remove_descriptor(sock.fileno())