From 3f78dc4797e1d3f53caad63778d180e28d1345d6 Mon Sep 17 00:00:00 2001 From: doe1080 <98906116+doe1080@users.noreply.github.com> Date: Sun, 16 Aug 2026 05:34:51 +0900 Subject: [PATCH] [test:socks] Fix compatibility with `websockets>=17` (#17433) Closes #17383 Authored by: doe1080 --- test/test_socks.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/test/test_socks.py b/test/test_socks.py index 4ec4733bd1..16baa4d9cd 100644 --- a/test/test_socks.py +++ b/test/test_socks.py @@ -213,8 +213,13 @@ class SocksHTTPTestRequestHandler(http.server.BaseHTTPRequestHandler, SocksTestR class SocksWebSocketTestRequestHandler(SocksTestRequestHandler): def handle(self): import websockets.sync.server + import websockets.version + protocol = websockets.ServerProtocol() - connection = websockets.sync.server.ServerConnection(socket=self.request, protocol=protocol, close_timeout=0) + connection_args = [self.request, protocol] + if int(websockets.version.version.partition('.')[0]) >= 17: + connection_args.append(self.server) + connection = websockets.sync.server.ServerConnection(*connection_args, close_timeout=0) connection.handshake() for message in connection: if message == 'socks_info': @@ -230,6 +235,7 @@ def socks_server(socks_server_class, request_handler, bind_ip=None, **socks_serv server_type = ThreadingTCPServer if '.' in bind_address else IPv6ThreadingTCPServer server = server_type( (bind_address, 0), functools.partial(socks_server_class, request_handler, socks_server_kwargs)) + server.socket_closed = threading.Event() server_port = http_server_port(server) server_thread = threading.Thread(target=server.serve_forever) server_thread.daemon = True @@ -240,6 +246,7 @@ def socks_server(socks_server_class, request_handler, bind_ip=None, **socks_serv yield f'{bind_address}:{server_port}' finally: server.shutdown() + server.socket_closed.set() server.server_close() server_thread.join(2.0)