summaryrefslogtreecommitdiffstats
path: root/src/lib/Bcfg2/SSLServer.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/Bcfg2/SSLServer.py')
-rw-r--r--src/lib/Bcfg2/SSLServer.py13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/lib/Bcfg2/SSLServer.py b/src/lib/Bcfg2/SSLServer.py
index 6aa46ea58..aef44e419 100644
--- a/src/lib/Bcfg2/SSLServer.py
+++ b/src/lib/Bcfg2/SSLServer.py
@@ -45,7 +45,7 @@ class XMLRPCDispatcher (SimpleXMLRPCServer.SimpleXMLRPCDispatcher):
params = (address, ) + params
response = self.instance._dispatch(method, params, self.funcs)
# py3k compatibility
- if type(response) not in [bool, str, list, dict] or response is None:
+ if type(response) not in [bool, str, list, dict]:
response = (response.decode('utf-8'), )
else:
response = (response, )
@@ -98,14 +98,23 @@ class SSLServer (SocketServer.TCPServer, object):
timeout -- timeout for non-blocking request handling
"""
-
+ # check whether or not we should listen on all interfaces
if listen_all:
listen_address = ('', server_address[1])
else:
listen_address = (server_address[0], server_address[1])
+
+ # check for IPv6 address
+ if ':' in server_address[0]:
+ self.address_family = socket.AF_INET6
+
try:
SocketServer.TCPServer.__init__(self, listen_address,
RequestHandlerClass)
+ except socket.gaierror:
+ e = sys.exc_info()[1]
+ self.logger.error("Failed to bind to socket: %s" % e)
+ raise
except socket.error:
self.logger.error("Failed to bind to socket")
raise