summaryrefslogtreecommitdiffstats
path: root/gitautodeploy/gitautodeploy.py
diff options
context:
space:
mode:
authorOliver Poignant <oliver@poignant.se>2017-01-06 01:09:18 +0100
committerOliver Poignant <oliver@poignant.se>2017-01-06 01:09:18 +0100
commitc00f661b80f9029ee3644ba1b5ab7e60891bcf61 (patch)
tree2187f1365f3eb08f75c45134a9e87b77eff0e1e7 /gitautodeploy/gitautodeploy.py
parent165c7de625a8f59f32b6deeedc93632db4b7a750 (diff)
downloadGit-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.py14
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)