diff options
author | Oliver Poignant <oliver@poignant.se> | 2017-01-06 01:09:18 +0100 |
---|---|---|
committer | Oliver Poignant <oliver@poignant.se> | 2017-01-06 01:09:18 +0100 |
commit | c00f661b80f9029ee3644ba1b5ab7e60891bcf61 (patch) | |
tree | 2187f1365f3eb08f75c45134a9e87b77eff0e1e7 /gitautodeploy/gitautodeploy.py | |
parent | 165c7de625a8f59f32b6deeedc93632db4b7a750 (diff) | |
download | Git-Auto-Deploy-c00f661b80f9029ee3644ba1b5ab7e60891bcf61.zip Git-Auto-Deploy-c00f661b80f9029ee3644ba1b5ab7e60891bcf61.tar.gz Git-Auto-Deploy-c00f661b80f9029ee3644ba1b5ab7e60891bcf61.tar.bz2 |
SSL for web socket connection
Diffstat (limited to 'gitautodeploy/gitautodeploy.py')
-rw-r--r-- | gitautodeploy/gitautodeploy.py | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/gitautodeploy/gitautodeploy.py b/gitautodeploy/gitautodeploy.py index 49526e8..1856581 100644 --- a/gitautodeploy/gitautodeploy.py +++ b/gitautodeploy/gitautodeploy.py @@ -339,9 +339,9 @@ class GitAutoDeploy(object): return try: - import sys + import os from autobahn.websocket import WebSocketServerProtocol, WebSocketServerFactory - from twisted.internet import reactor + from twisted.internet import reactor, ssl from twisted.internet.error import BindError # Create a WebSocketClientHandler instance @@ -353,9 +353,15 @@ class GitAutoDeploy(object): # factory.setProtocolOptions(maxConnections=2) # note to self: if using putChild, the child must be bytes... - self._ws_server_port = reactor.listenTCP(self._config['web-ui-web-socket-port'], factory) + if 'ssl' in self._config and self._config['ssl'] and os.path.isfile(self._config['ssl-cert']): + contextFactory = ssl.DefaultOpenSSLContextFactory(privateKeyFileName=self._config['ssl-key'], certificateFileName=self._config['ssl-cert']) + self._ws_server_port = reactor.listenSSL(self._config['web-ui-web-socket-port'], factory, contextFactory) + protocol = "SSL" + else: + self._ws_server_port = reactor.listenTCP(self._config['web-ui-web-socket-port'], factory) + protocol = "TCP" - self._startup_event.log_info("Listening for web socket connections on %s port %s" % (self._config['web-ui-web-socket-host'], self._config['web-ui-web-socket-port'])) + self._startup_event.log_info("Listening for web socket connections over %s on %s port %s" % (protocol, self._config['web-ui-web-socket-host'], self._config['web-ui-web-socket-port'])) self._startup_event.ws_address = self._config['web-ui-web-socket-host'] self._startup_event.ws_port = self._config['web-ui-web-socket-port'] self._startup_event.set_ws_started(True) |