From f3c16a5e72aaf06bec863fa3a172f3deaa491bc9 Mon Sep 17 00:00:00 2001 From: Jim Crist-Harif Date: Sun, 12 Dec 2021 03:47:01 -0600 Subject: Re-add `reuse_address` parameter to `create_server` (GH-29733) This parameter was accidentally removed when fixing https://bugs.python.org/issue45129, this reverts the unnecessary changes there. Co-authored-by: Andrew Svetlov --- Lib/asyncio/base_events.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Lib/asyncio/base_events.py b/Lib/asyncio/base_events.py index cfaf082..cbf6d5d 100644 --- a/Lib/asyncio/base_events.py +++ b/Lib/asyncio/base_events.py @@ -1394,6 +1394,7 @@ class BaseEventLoop(events.AbstractEventLoop): sock=None, backlog=100, ssl=None, + reuse_address=None, reuse_port=None, ssl_handshake_timeout=None, start_serving=True): @@ -1424,6 +1425,8 @@ class BaseEventLoop(events.AbstractEventLoop): raise ValueError( 'host/port and sock can not be specified at the same time') + if reuse_address is None: + reuse_address = os.name == "posix" and sys.platform != "cygwin" sockets = [] if host == '': hosts = [None] @@ -1453,6 +1456,9 @@ class BaseEventLoop(events.AbstractEventLoop): af, socktype, proto, exc_info=True) continue sockets.append(sock) + if reuse_address: + sock.setsockopt( + socket.SOL_SOCKET, socket.SO_REUSEADDR, True) if reuse_port: _set_reuseport(sock) # Disable IPv4/IPv6 dual stack support (enabled by -- cgit v0.12