summaryrefslogtreecommitdiffstats
path: root/Doc/library/asyncio-eventloop.rst
diff options
context:
space:
mode:
authorHugo van Kemenade <hugovk@users.noreply.github.com>2021-09-08 16:58:43 (GMT)
committerGitHub <noreply@github.com>2021-09-08 16:58:43 (GMT)
commit59ea704df7a2fae4559e1e04f7a59d6c40f63657 (patch)
treed465a855c6325d2faeb2486a33d3183058ac6ebf /Doc/library/asyncio-eventloop.rst
parenta5610057615779ca6fc75d9e006d2fae644a94d3 (diff)
downloadcpython-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.rst38
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)