reset socket timeout before handing over to websockets

This commit is contained in:
coletdjnz 2024-05-18 15:43:43 +12:00
parent 5078692aa2
commit 44da2e1323
No known key found for this signature in database
GPG Key ID: 91984263BB39894A
2 changed files with 5 additions and 1 deletions

View File

@ -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()

View File

@ -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,