enable port reuse on non-windows platforms

This commit is contained in:
Alexander Bersenev
2018-06-19 21:51:02 +05:00
parent 19b9da53f7
commit e1d592cd84

View File

@@ -966,7 +966,7 @@ def loop_exception_handler(loop, context):
def main(): def main():
init_stats() init_stats()
if sys.platform == 'win32': if sys.platform == "win32":
loop = asyncio.ProactorEventLoop() loop = asyncio.ProactorEventLoop()
asyncio.set_event_loop(loop) asyncio.set_event_loop(loop)
@@ -980,13 +980,15 @@ def main():
middle_proxy_updater_task = asyncio.Task(update_middle_proxy_info()) middle_proxy_updater_task = asyncio.Task(update_middle_proxy_info())
asyncio.ensure_future(middle_proxy_updater_task) asyncio.ensure_future(middle_proxy_updater_task)
task_v4 = asyncio.start_server(handle_client_wrapper, reuse_port = (sys.platform != "win32")
'0.0.0.0', PORT, limit=READ_BUF_SIZE, loop=loop)
task_v4 = asyncio.start_server(handle_client_wrapper, '0.0.0.0', PORT,
limit=READ_BUF_SIZE, reuse_port=reuse_port, loop=loop)
server_v4 = loop.run_until_complete(task_v4) server_v4 = loop.run_until_complete(task_v4)
if socket.has_ipv6: if socket.has_ipv6:
task_v6 = asyncio.start_server(handle_client_wrapper, task_v6 = asyncio.start_server(handle_client_wrapper, '::', PORT,
'::', PORT, limit=READ_BUF_SIZE, loop=loop) limit=READ_BUF_SIZE, reuse_port=reuse_port, loop=loop)
server_v6 = loop.run_until_complete(task_v6) server_v6 = loop.run_until_complete(task_v6)
try: try: