mirror of
https://github.com/python/cpython.git
synced 2025-08-04 08:59:19 +00:00
asyncio: Add "call_connection_made" arg to SSLProtocol.__init__
Issue #23749: With this change it's possible to implement starttls as a separate package on PyPI, or even by copying/pasting a small snipped of code in your project. It's expected that we'll figure out the API design for starttls during 3.6, so that we can add it in 3.7.
This commit is contained in:
parent
8dc3e43839
commit
92e7c7f99c
1 changed files with 5 additions and 2 deletions
|
@ -410,7 +410,8 @@ class SSLProtocol(protocols.Protocol):
|
|||
"""
|
||||
|
||||
def __init__(self, loop, app_protocol, sslcontext, waiter,
|
||||
server_side=False, server_hostname=None):
|
||||
server_side=False, server_hostname=None,
|
||||
call_connection_made=True):
|
||||
if ssl is None:
|
||||
raise RuntimeError('stdlib ssl module not available')
|
||||
|
||||
|
@ -443,6 +444,7 @@ class SSLProtocol(protocols.Protocol):
|
|||
self._in_shutdown = False
|
||||
# transport, ex: SelectorSocketTransport
|
||||
self._transport = None
|
||||
self._call_connection_made = call_connection_made
|
||||
|
||||
def _wakeup_waiter(self, exc=None):
|
||||
if self._waiter is None:
|
||||
|
@ -606,7 +608,8 @@ class SSLProtocol(protocols.Protocol):
|
|||
compression=sslobj.compression(),
|
||||
ssl_object=sslobj,
|
||||
)
|
||||
self._app_protocol.connection_made(self._app_transport)
|
||||
if self._call_connection_made:
|
||||
self._app_protocol.connection_made(self._app_transport)
|
||||
self._wakeup_waiter()
|
||||
self._session_established = True
|
||||
# In case transport.write() was already called. Don't call
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue