[Python-checkins] cpython (3.5): asyncio: Add "call_connection_made" arg to SSLProtocol.__init__

yury.selivanov python-checkins at python.org
Wed Oct 5 19:40:44 EDT 2016


https://hg.python.org/cpython/rev/3771a6326725
changeset:   104314:3771a6326725
branch:      3.5
parent:      104311:7bacd209ac4f
user:        Yury Selivanov <yury at magic.io>
date:        Wed Oct 05 19:39:54 2016 -0400
summary:
  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.

files:
  Lib/asyncio/sslproto.py |  7 +++++--
  1 files changed, 5 insertions(+), 2 deletions(-)


diff --git a/Lib/asyncio/sslproto.py b/Lib/asyncio/sslproto.py
--- a/Lib/asyncio/sslproto.py
+++ b/Lib/asyncio/sslproto.py
@@ -410,7 +410,8 @@
     """
 
     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 @@
         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 @@
                            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

-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list