Monday, 15 September 2014

python - Using IPv6 socket with GEvent WSGIServer -



python - Using IPv6 socket with GEvent WSGIServer -

i'm trying bind wsgiserver ipv6 loopback address:

import socket import gevent gevent.pywsgi import wsgiserver addrs = socket.getaddrinfo('::1', 8000, socket.af_inet6, 0, socket.sol_tcp) bind_spec = addrs[0][-1] listener = socket.socket(socket.af_inet6, socket.sock_stream) listener.bind(bind_spec) server = wsgiserver( listener, lambda a,b:'asd' ) server.serve_forever()

but yields

error: [errno 22] invalid argument

in

file "/usr/local/lib/python2.7/dist-packages/gevent/server.py", line 122, in _do_accept client_socket, address = self.socket.accept()

i've tried utilize gevent monkeypatcher, didn't help. importing gevent after socket creation didn't help either.

ipv6 enabled on system. if replace server construction plain accept(), socket binds , accepts connections.

listener.listen(5) listener.accept()

i'm stupid... gevent doesn't invoke listen() on provided socket, had phone call myself before creating server.

python ipv6 gevent

No comments:

Post a Comment