From: Jim Crist-Harif Date: Sun, 12 Dec 2021 09:47:01 +0000 (-0600) Subject: Re-add `reuse_address` parameter to `create_server` (GH-29733) X-Git-Tag: v3.11.0a4~216 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f3c16a5e72aaf06bec863fa3a172f3deaa491bc9;p=thirdparty%2FPython%2Fcpython.git 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 --- diff --git a/Lib/asyncio/base_events.py b/Lib/asyncio/base_events.py index cfaf082587bb..cbf6d5db0a00 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