]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Re-add `reuse_address` parameter to `create_server` (GH-29733)
authorJim Crist-Harif <jcristharif@gmail.com>
Sun, 12 Dec 2021 09:47:01 +0000 (03:47 -0600)
committerGitHub <noreply@github.com>
Sun, 12 Dec 2021 09:47:01 +0000 (11:47 +0200)
This parameter was accidentally removed when fixing
https://bugs.python.org/issue45129, this reverts the unnecessary changes
there.

Co-authored-by: Andrew Svetlov <andrew.svetlov@gmail.com>
Lib/asyncio/base_events.py

index cfaf082587bb2650704f5ecf9b0082b234442a69..cbf6d5db0a0023da04564e34158d70ab5dbee613 100644 (file)
@@ -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