diff options
author | Davanum Srinivas <dims@linux.vnet.ibm.com> | 2013-01-09 11:41:18 -0500 |
---|---|---|
committer | Davanum Srinivas <dims@linux.vnet.ibm.com> | 2013-01-09 11:43:47 -0500 |
commit | 3e35f10d42aa474d34152a95ba504261c386b9d2 (patch) | |
tree | 65e32823cdc0806ea631d6440f98c0a11c5e3a3c /nova/wsgi.py | |
parent | 8b83990c12e4dc03aa599dd5e68ce91a9cab4eb7 (diff) | |
download | nova-3e35f10d42aa474d34152a95ba504261c386b9d2.tar.gz nova-3e35f10d42aa474d34152a95ba504261c386b9d2.tar.xz nova-3e35f10d42aa474d34152a95ba504261c386b9d2.zip |
Enhance wsgi to listen on ipv6 address
* Check if the hostname is ipv6 and set the family appropriately
* Add test case for wsgi.Server and service.WSGIService
Change-Id: I6edd467467fa3d623d62e146750b3a6c42d8833c
Diffstat (limited to 'nova/wsgi.py')
-rw-r--r-- | nova/wsgi.py | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/nova/wsgi.py b/nova/wsgi.py index e7e731523..c103526da 100644 --- a/nova/wsgi.py +++ b/nova/wsgi.py @@ -20,6 +20,7 @@ """Utility methods for working with WSGI servers.""" import os.path +import socket import sys import eventlet @@ -82,8 +83,14 @@ class Server(object): raise exception.InvalidInput( reason='The backlog must be more than 1') - self._socket = eventlet.listen((host, port), backlog=backlog) - (self.host, self.port) = self._socket.getsockname() + try: + socket.inet_pton(socket.AF_INET6, host) + family = socket.AF_INET6 + except Exception: + family = socket.AF_INET + + self._socket = eventlet.listen((host, port), family, backlog=backlog) + (self.host, self.port) = self._socket.getsockname()[0:2] LOG.info(_("%(name)s listening on %(host)s:%(port)s") % self.__dict__) def start(self): |