summaryrefslogtreecommitdiffstats
path: root/pyload/remote/WebSocketBackend.py
diff options
context:
space:
mode:
Diffstat (limited to 'pyload/remote/WebSocketBackend.py')
-rw-r--r--pyload/remote/WebSocketBackend.py16
1 files changed, 15 insertions, 1 deletions
diff --git a/pyload/remote/WebSocketBackend.py b/pyload/remote/WebSocketBackend.py
index d29470067..7238af679 100644
--- a/pyload/remote/WebSocketBackend.py
+++ b/pyload/remote/WebSocketBackend.py
@@ -21,12 +21,15 @@ import logging
from RemoteManager import BackendBase
from mod_pywebsocket import util
+
+
def get_class_logger(o=None):
return logging.getLogger('log')
# Monkey patch for our logger
util.get_class_logger = get_class_logger
+
class WebSocketBackend(BackendBase):
def setup(self, host, port):
@@ -42,8 +45,19 @@ class WebSocketBackend(BackendBase):
options.dispatcher.addHandler(ApiHandler.PATH, ApiHandler(self.core.api))
options.dispatcher.addHandler(AsyncHandler.PATH, AsyncHandler(self.core.api))
- self.server = WebSocketServer(options)
+ # tls is needed when requested or webUI is also on tls
+ if self.core.api.isWSSecure():
+ from wsbackend.Server import import_ssl
+ if import_ssl():
+ options.use_tls = True
+ options.certificate = self.core.config['ssl']['cert']
+ options.ca_certificate = options.certificate
+ options.private_key = self.core.config['ssl']['key']
+ self.core.log.info(_('Using secure WebSocket'))
+ else:
+ self.core.log.warning(_('SSL could not be imported'))
+ self.server = WebSocketServer(options)
def serve(self):
self.server.serve_forever()