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
This commit is contained in:
11
nova/wsgi.py
11
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):
|
||||
|
||||
Reference in New Issue
Block a user