From 44da2e1323ea3815c423e538cc2f9ea52417c031 Mon Sep 17 00:00:00 2001 From: coletdjnz Date: Sat, 18 May 2024 15:43:43 +1200 Subject: [PATCH] reset socket timeout before handing over to websockets --- test/test_http_proxy.py | 1 + yt_dlp/networking/_websockets.py | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/test/test_http_proxy.py b/test/test_http_proxy.py index 6e56a18df..409476ad0 100644 --- a/test/test_http_proxy.py +++ b/test/test_http_proxy.py @@ -156,6 +156,7 @@ def __init__(self, *args, proxy_info=None, **kwargs): def handle(self): import websockets.sync.server + self.request.settimeout(None) protocol = websockets.ServerProtocol() connection = websockets.sync.server.ServerConnection(socket=self.request, protocol=protocol, close_timeout=2) connection.handshake() diff --git a/yt_dlp/networking/_websockets.py b/yt_dlp/networking/_websockets.py index 8b8dd180e..541d0eb98 100644 --- a/yt_dlp/networking/_websockets.py +++ b/yt_dlp/networking/_websockets.py @@ -204,9 +204,12 @@ def _send(self, request): ssl_context = WebsocketsSSLContext(self._make_sslcontext()) else: ssl_context = self._make_sslcontext() + sock = self._make_sock(proxy, request.url, timeout) + # We need to reset the timeout to not conflict with websocket handshake + sock.settimeout(None) try: conn = websockets.sync.client.connect( - sock=self._make_sock(proxy, request.url, timeout), + sock=sock, uri=request.url, additional_headers=headers, open_timeout=timeout,