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 <andrew.svetlov@gmail.com>
This commit is contained in:
Jim Crist-Harif 2021-12-12 03:47:01 -06:00 committed by GitHub
parent 41026c3155
commit f3c16a5e72
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View 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