gh-101317: Add `ssl_shutdown_timeout` parameter for `asyncio.StreamWriter.start_tls` (#101335)

Co-authored-by: Kumar Aditya <59607654+kumaraditya303@users.noreply.github.com>
This commit is contained in:
beavailable 2023-02-01 19:03:59 +08:00 committed by GitHub
parent 75227fba1d
commit cc407b9de6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 15 additions and 3 deletions

View File

@ -335,7 +335,7 @@ StreamWriter
returns immediately.
.. coroutinemethod:: start_tls(sslcontext, \*, server_hostname=None, \
ssl_handshake_timeout=None)
ssl_handshake_timeout=None, ssl_shutdown_timeout=None)
Upgrade an existing stream-based connection to TLS.
@ -350,8 +350,16 @@ StreamWriter
handshake to complete before aborting the connection. ``60.0`` seconds
if ``None`` (default).
* *ssl_shutdown_timeout* is the time in seconds to wait for the SSL shutdown
to complete before aborting the connection. ``30.0`` seconds if ``None``
(default).
.. versionadded:: 3.11
.. versionchanged:: 3.12
Added the *ssl_shutdown_timeout* parameter.
.. method:: is_closing()
Return ``True`` if the stream is closed or in the process of

View File

@ -378,7 +378,8 @@ class StreamWriter:
async def start_tls(self, sslcontext, *,
server_hostname=None,
ssl_handshake_timeout=None):
ssl_handshake_timeout=None,
ssl_shutdown_timeout=None):
"""Upgrade an existing stream-based connection to TLS."""
server_side = self._protocol._client_connected_cb is not None
protocol = self._protocol
@ -386,7 +387,8 @@ class StreamWriter:
new_transport = await self._loop.start_tls( # type: ignore
self._transport, protocol, sslcontext,
server_side=server_side, server_hostname=server_hostname,
ssl_handshake_timeout=ssl_handshake_timeout)
ssl_handshake_timeout=ssl_handshake_timeout,
ssl_shutdown_timeout=ssl_shutdown_timeout)
self._transport = new_transport
protocol._replace_writer(self)

View File

@ -0,0 +1,2 @@
Add *ssl_shutdown_timeout* parameter for :meth:`asyncio.StreamWriter.start_tls`.