From cd4bc7960658db6d51f60f528b3b53c718426591 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Sat, 20 Jan 2024 19:08:49 +0100 Subject: [PATCH] Pass arguments to create_server/connection. --- src/websockets/sync/client.py | 8 ++++---- src/websockets/sync/server.py | 8 ++++++-- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/websockets/sync/client.py b/src/websockets/sync/client.py index 78a9a3c8..79af0132 100644 --- a/src/websockets/sync/client.py +++ b/src/websockets/sync/client.py @@ -195,6 +195,8 @@ def connect( the connection. Set it to a wrapper or a subclass to customize connection handling. + Any other keyword arguments are passed to :func:`~socket.create_connection`. + Raises: InvalidURI: If ``uri`` isn't a valid WebSocket URI. OSError: If the TCP connection fails. @@ -245,10 +247,8 @@ def connect( assert path is not None # mypy cannot figure this out sock.connect(path) else: - sock = socket.create_connection( - (wsuri.host, wsuri.port), - deadline.timeout(), - ) + kwargs.setdefault("timeout", deadline.timeout()) + sock = socket.create_connection((wsuri.host, wsuri.port), **kwargs) sock.settimeout(None) # Disable Nagle algorithm diff --git a/src/websockets/sync/server.py b/src/websockets/sync/server.py index 7faab0a3..c1999284 100644 --- a/src/websockets/sync/server.py +++ b/src/websockets/sync/server.py @@ -379,6 +379,9 @@ def handler(websocket): create_connection: Factory for the :class:`ServerConnection` managing the connection. Set it to a wrapper or a subclass to customize connection handling. + + Any other keyword arguments are passed to :func:`~socket.create_server`. + """ # Process parameters @@ -404,9 +407,10 @@ def handler(websocket): if unix: if path is None: raise TypeError("missing path argument") - sock = socket.create_server(path, family=socket.AF_UNIX) + kwargs.setdefault("family", socket.AF_UNIX) + sock = socket.create_server(path, **kwargs) else: - sock = socket.create_server((host, port)) + sock = socket.create_server((host, port), **kwargs) else: if path is not None: raise TypeError("path and sock arguments are incompatible")