diff --git a/examples/unixsocket_client.py b/examples/unixsocket_client.py new file mode 100644 index 000000000..426a2600e --- /dev/null +++ b/examples/unixsocket_client.py @@ -0,0 +1,9 @@ +import socket + +s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) +s.connect("./unixsocket_server.py.sock") +s.send('GET / HTTP/1.0\r\n\r\n') +data = s.recv(1024) +print 'received %s bytes' % len(data) +print data +s.close() diff --git a/examples/unixsocket_server.py b/examples/unixsocket_server.py new file mode 100644 index 000000000..19c066b29 --- /dev/null +++ b/examples/unixsocket_server.py @@ -0,0 +1,18 @@ +import os +from gevent.pywsgi import WSGIServer +from gevent import socket + + +def application(environ, start_response): + start_response('200 OK', []) + return [] + + +if __name__ == '__main__': + listener = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) + sockname = './' + os.path.basename(__file__) + '.sock' + if os.path.exists(sockname): + os.remove(sockname) + listener.bind(sockname) + listener.listen(1) + WSGIServer(listener, application).serve_forever() diff --git a/gevent/pywsgi.py b/gevent/pywsgi.py index a2e081d19..69a886051 100644 --- a/gevent/pywsgi.py +++ b/gevent/pywsgi.py @@ -466,8 +466,9 @@ def format_request(self): delta = '%.6f' % (self.time_finish - self.time_start) else: delta = '-' + client_address = self.client_address[0] if isinstance(self.client_address, tuple) else self.client_address return '%s - - [%s] "%s" %s %s %s' % ( - self.client_address[0], + client_address or '-', now, self.requestline, (getattr(self, 'status', None) or '000').split()[0], diff --git a/greentest/test__examples.py b/greentest/test__examples.py index 75cad2c87..2d9ed8b88 100644 --- a/greentest/test__examples.py +++ b/greentest/test__examples.py @@ -6,7 +6,7 @@ cwd = '../examples/' -ignore = ['wsgiserver.py', 'wsgiserver_ssl.py', 'webproxy.py', 'webpy.py'] +ignore = ['wsgiserver.py', 'wsgiserver_ssl.py', 'webproxy.py', 'webpy.py', 'unixsocket_server.py', 'unixsocket_client.py'] if sys.platform == 'win32': ignore += ['geventsendfile.py', 'psycopg2_pool.py'] ignore += [x[14:] for x in glob.glob('test__example_*.py')]