summaryrefslogtreecommitdiffstats
path: root/src/lib/SSLServer.py
diff options
context:
space:
mode:
authorSol Jerome <sol.jerome@gmail.com>2011-06-03 13:28:46 -0500
committerSol Jerome <sol.jerome@gmail.com>2011-06-14 12:36:46 -0500
commit5da2ced6d355a61032e254356c88804c7a44ffc1 (patch)
tree08368920ee86ca447a0763dbd54ad0d5b45c7735 /src/lib/SSLServer.py
parentab956d76bd20b458195ade8efd2cafb590bb3217 (diff)
downloadbcfg2-5da2ced6d355a61032e254356c88804c7a44ffc1.tar.gz
bcfg2-5da2ced6d355a61032e254356c88804c7a44ffc1.tar.bz2
bcfg2-5da2ced6d355a61032e254356c88804c7a44ffc1.zip
bcfg2-server: Add the ability to listen on specific interfaces (#1013)
Signed-off-by: Sol Jerome <sol.jerome@gmail.com>
Diffstat (limited to 'src/lib/SSLServer.py')
-rw-r--r--src/lib/SSLServer.py25
1 files changed, 17 insertions, 8 deletions
diff --git a/src/lib/SSLServer.py b/src/lib/SSLServer.py
index a89beabbb..8cac8a53f 100644
--- a/src/lib/SSLServer.py
+++ b/src/lib/SSLServer.py
@@ -79,9 +79,9 @@ class SSLServer (SocketServer.TCPServer, object):
allow_reuse_address = True
logger = logging.getLogger("Cobalt.Server.TCPServer")
- def __init__(self, server_address, RequestHandlerClass, keyfile=None,
- certfile=None, reqCert=False, ca=None, timeout=None,
- protocol='xmlrpc/ssl'):
+ def __init__(self, listen_all, server_address, RequestHandlerClass,
+ keyfile=None, certfile=None, reqCert=False, ca=None,
+ timeout=None, protocol='xmlrpc/ssl'):
"""Initialize the SSL-TCP server.
@@ -97,9 +97,12 @@ class SSLServer (SocketServer.TCPServer, object):
"""
- all_iface_address = ('', server_address[1])
+ if listen_all:
+ listen_address = ('', server_address[1])
+ else:
+ listen_address = (server_address[0], server_address[1])
try:
- SocketServer.TCPServer.__init__(self, all_iface_address,
+ SocketServer.TCPServer.__init__(self, listen_address,
RequestHandlerClass)
except socket.error:
self.logger.error("Failed to bind to socket")
@@ -310,7 +313,7 @@ class XMLRPCServer (SocketServer.ThreadingMixIn, SSLServer,
"""
- def __init__(self, server_address, RequestHandlerClass=None,
+ def __init__(self, listen_all, server_address, RequestHandlerClass=None,
keyfile=None, certfile=None, ca=None, protocol='xmlrpc/ssl',
timeout=10,
logRequests=False,
@@ -339,8 +342,14 @@ class XMLRPCServer (SocketServer.ThreadingMixIn, SSLServer,
"""A subclassed request handler to prevent class-attribute conflicts."""
SSLServer.__init__(self,
- server_address, RequestHandlerClass, ca=ca,
- timeout=timeout, keyfile=keyfile, certfile=certfile, protocol=protocol)
+ listen_all,
+ server_address,
+ RequestHandlerClass,
+ ca=ca,
+ timeout=timeout,
+ keyfile=keyfile,
+ certfile=certfile,
+ protocol=protocol)
self.logRequests = logRequests
self.serve = False
self.register = register