diff --git a/WebHostLib/customserver.py b/WebHostLib/customserver.py index 36ded46b2e..eebcd446d4 100644 --- a/WebHostLib/customserver.py +++ b/WebHostLib/customserver.py @@ -331,6 +331,18 @@ def run_server_process(name: str, ponyconfig: dict, static_server_data: dict, ctx.load(room_id) ctx.init_save() assert ctx.server is None + if ctx.port != 0: + try: + ctx.server = websockets.serve( + functools.partial(server, ctx=ctx), + ctx.host, + ctx.port, + ssl=get_ssl_context(), + extensions=[server_per_message_deflate_factory], + ) + await ctx.server + except OSError: + ctx.port = 0 if ctx.port == 0: ctx.server = websockets.serve( functools.partial(server, ctx=ctx), @@ -342,15 +354,6 @@ def run_server_process(name: str, ponyconfig: dict, static_server_data: dict, extensions=[server_per_message_deflate_factory], ) await ctx.server - else: - ctx.server = websockets.serve( - functools.partial(server, ctx=ctx), - ctx.host, - ctx.port, - ssl=get_ssl_context(), - extensions=[server_per_message_deflate_factory], - ) - await ctx.server port = 0 for wssocket in ctx.server.ws_server.sockets: socketname = wssocket.getsockname()