diff options
author | Hugo van Kemenade <hugovk@users.noreply.github.com> | 2021-09-08 16:58:43 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-09-08 16:58:43 (GMT) |
commit | 59ea704df7a2fae4559e1e04f7a59d6c40f63657 (patch) | |
tree | d465a855c6325d2faeb2486a33d3183058ac6ebf /Doc/library/asyncio-eventloop.rst | |
parent | a5610057615779ca6fc75d9e006d2fae644a94d3 (diff) | |
download | cpython-59ea704df7a2fae4559e1e04f7a59d6c40f63657.zip cpython-59ea704df7a2fae4559e1e04f7a59d6c40f63657.tar.gz cpython-59ea704df7a2fae4559e1e04f7a59d6c40f63657.tar.bz2 |
bpo-45129 Remove deprecated reuse_address (GH-28207)
Due to significant security concerns, the reuse_address parameter of
asyncio.loop.create_datagram_endpoint, deprecated in Python 3.9, is
now removed. This is because of the behavior of the socket option
SO_REUSEADDR in UDP.
Co-authored-by: Ćukasz Langa <lukasz@langa.pl>
Diffstat (limited to 'Doc/library/asyncio-eventloop.rst')
-rw-r--r-- | Doc/library/asyncio-eventloop.rst | 38 |
1 files changed, 19 insertions, 19 deletions
diff --git a/Doc/library/asyncio-eventloop.rst b/Doc/library/asyncio-eventloop.rst index 147fb2b..c4408f1 100644 --- a/Doc/library/asyncio-eventloop.rst +++ b/Doc/library/asyncio-eventloop.rst @@ -493,24 +493,9 @@ Opening network connections .. coroutinemethod:: loop.create_datagram_endpoint(protocol_factory, \ local_addr=None, remote_addr=None, *, \ family=0, proto=0, flags=0, \ - reuse_address=None, reuse_port=None, \ + reuse_port=None, \ allow_broadcast=None, sock=None) - .. note:: - The parameter *reuse_address* is no longer supported, as using - :py:data:`~sockets.SO_REUSEADDR` poses a significant security concern for - UDP. Explicitly passing ``reuse_address=True`` will raise an exception. - - When multiple processes with differing UIDs assign sockets to an - identical UDP socket address with ``SO_REUSEADDR``, incoming packets can - become randomly distributed among the sockets. - - For supported platforms, *reuse_port* can be used as a replacement for - similar functionality. With *reuse_port*, - :py:data:`~sockets.SO_REUSEPORT` is used instead, which specifically - prevents processes with differing UIDs from assigning sockets to the same - socket address. - Create a datagram connection. The socket family can be either :py:data:`~socket.AF_INET`, @@ -557,16 +542,31 @@ Opening network connections :ref:`UDP echo server protocol <asyncio-udp-echo-server-protocol>` examples. .. versionchanged:: 3.4.4 - The *family*, *proto*, *flags*, *reuse_address*, *reuse_port, + The *family*, *proto*, *flags*, *reuse_address*, *reuse_port*, *allow_broadcast*, and *sock* parameters were added. .. versionchanged:: 3.8.1 - The *reuse_address* parameter is no longer supported due to security - concerns. + The *reuse_address* parameter is no longer supported, as using + :py:data:`~sockets.SO_REUSEADDR` poses a significant security concern for + UDP. Explicitly passing ``reuse_address=True`` will raise an exception. + + When multiple processes with differing UIDs assign sockets to an + identical UDP socket address with ``SO_REUSEADDR``, incoming packets can + become randomly distributed among the sockets. + + For supported platforms, *reuse_port* can be used as a replacement for + similar functionality. With *reuse_port*, + :py:data:`~sockets.SO_REUSEPORT` is used instead, which specifically + prevents processes with differing UIDs from assigning sockets to the same + socket address. .. versionchanged:: 3.8 Added support for Windows. + .. versionchanged:: 3.11 + The *reuse_address* parameter, disabled since Python 3.9.0, 3.8.1, + 3.7.6 and 3.6.10, has been entirely removed. + .. coroutinemethod:: loop.create_unix_connection(protocol_factory, \ path=None, *, ssl=None, sock=None, \ server_hostname=None, ssl_handshake_timeout=None) |