From bc79a5e4c1c974b98d65edc81de57bb735c0d9a2 Mon Sep 17 00:00:00 2001 From: Flowseal Date: Fri, 10 Apr 2026 00:37:27 +0300 Subject: [PATCH] possible #626 ref --- proxy/tg_ws_proxy.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/proxy/tg_ws_proxy.py b/proxy/tg_ws_proxy.py index 60087c7..a2b8a31 100644 --- a/proxy/tg_ws_proxy.py +++ b/proxy/tg_ws_proxy.py @@ -428,6 +428,7 @@ async def _handle_client(reader, writer, secret: bytes): _server_instance = None _server_stop_event = None +_client_tasks: Set[asyncio.Task] = set() async def _run(stop_event: Optional[asyncio.Event] = None): @@ -437,6 +438,7 @@ async def _run(stop_event: Optional[asyncio.Event] = None): _ws_pool.reset() ws_blacklist.clear() dc_fail_until.clear() + _client_tasks.clear() if proxy_config.fallback_cfproxy: user = proxy_config.cfproxy_user_domain @@ -451,7 +453,9 @@ async def _run(stop_event: Optional[asyncio.Event] = None): secret_bytes = bytes.fromhex(proxy_config.secret) def client_cb(r, w): - asyncio.create_task(_handle_client(r, w, secret_bytes)) + task = asyncio.create_task(_handle_client(r, w, secret_bytes)) + _client_tasks.add(task) + task.add_done_callback(_client_tasks.discard) server = await asyncio.start_server(client_cb, proxy_config.host, proxy_config.port) _server_instance = server