Fix SSL support for controller and local compute. Fixes #1826

This commit is contained in:
grossmj committed 2020-10-27 23:25:19 +10:30
1 parent 5dab0c2587
commit b6a021dabd
3 files changed
+26 -9

No files matched your search

+11 -5
View File
@@ -64,6 +64,7 @@ class WebServer:
self._start_time = time.time()
self._running = False
self._closing = False
self._ssl_context = None
@staticmethod
def instance(host=None, port=None):
@@ -88,7 +89,6 @@ class WebServer:
return False
return True
async def reload_server(self):
"""
Reload the server.
@@ -96,7 +96,6 @@ class WebServer:
await Controller.instance().reload()
async def shutdown_server(self):
"""
Cleanly shutdown the server.
@@ -147,6 +146,13 @@ class WebServer:
self._loop.stop()
def ssl_context(self):
"""
Returns the SSL context for the server.
"""
return self._ssl_context
def _signal_handling(self):
def signal_handler(signame, *args):
@@ -255,12 +261,12 @@ class WebServer:
server_config = Config.instance().get_section_config("Server")
ssl_context = None
self._ssl_context = None
if server_config.getboolean("ssl"):
if sys.platform.startswith("win"):
log.critical("SSL mode is not supported on Windows")
raise SystemExit
ssl_context = self._create_ssl_context(server_config)
self._ssl_context = self._create_ssl_context(server_config)
self._loop = asyncio.get_event_loop()
@@ -307,7 +313,7 @@ class WebServer:
log.info("Starting server on {}:{}".format(self._host, self._port))
self._handler = self._app.make_handler()
if self._run_application(self._handler, ssl_context) is False:
if self._run_application(self._handler, self._ssl_context) is False:
self._loop.stop()
sys.exit(1)