@@ -493,24 +493,9 @@ Opening network connections
493493.. coroutinemethod :: loop.create_datagram_endpoint(protocol_factory, \
494494 local_addr=None, remote_addr=None, *, \
495495 family=0, proto=0, flags=0, \
496- reuse_address=None, reuse_port=None, \
496+ reuse_port=None, \
497497 allow_broadcast=None, sock=None)
498498
499- .. note ::
500- The parameter *reuse_address * is no longer supported, as using
501- :py:data: `~sockets.SO_REUSEADDR ` poses a significant security concern for
502- UDP. Explicitly passing ``reuse_address=True `` will raise an exception.
503-
504- When multiple processes with differing UIDs assign sockets to an
505- identical UDP socket address with ``SO_REUSEADDR ``, incoming packets can
506- become randomly distributed among the sockets.
507-
508- For supported platforms, *reuse_port * can be used as a replacement for
509- similar functionality. With *reuse_port *,
510- :py:data: `~sockets.SO_REUSEPORT ` is used instead, which specifically
511- prevents processes with differing UIDs from assigning sockets to the same
512- socket address.
513-
514499 Create a datagram connection.
515500
516501 The socket family can be either :py:data: `~socket.AF_INET `,
@@ -557,16 +542,31 @@ Opening network connections
557542 :ref: `UDP echo server protocol <asyncio-udp-echo-server-protocol >` examples.
558543
559544 .. versionchanged :: 3.4.4
560- The *family *, *proto *, *flags *, *reuse_address *, *reuse_port,
545+ The *family *, *proto *, *flags *, *reuse_address *, *reuse_port * ,
561546 *allow_broadcast *, and *sock * parameters were added.
562547
563548 .. versionchanged :: 3.8.1
564- The *reuse_address * parameter is no longer supported due to security
565- concerns.
549+ The *reuse_address * parameter is no longer supported, as using
550+ :py:data: `~sockets.SO_REUSEADDR ` poses a significant security concern for
551+ UDP. Explicitly passing ``reuse_address=True `` will raise an exception.
552+
553+ When multiple processes with differing UIDs assign sockets to an
554+ identical UDP socket address with ``SO_REUSEADDR ``, incoming packets can
555+ become randomly distributed among the sockets.
556+
557+ For supported platforms, *reuse_port * can be used as a replacement for
558+ similar functionality. With *reuse_port *,
559+ :py:data: `~sockets.SO_REUSEPORT ` is used instead, which specifically
560+ prevents processes with differing UIDs from assigning sockets to the same
561+ socket address.
566562
567563 .. versionchanged :: 3.8
568564 Added support for Windows.
569565
566+ .. versionchanged :: 3.11
567+ The *reuse_address * parameter, disabled since Python 3.9.0, 3.8.1,
568+ 3.7.6 and 3.6.10, has been entirely removed.
569+
570570.. coroutinemethod :: loop.create_unix_connection(protocol_factory, \
571571 path=None, *, ssl=None, sock=None, \
572572 server_hostname=None, ssl_handshake_timeout=None)
0 commit comments