bpo-33674: Pause the transport as early as possible (GH-7192)
(cherry picked from commit f295587c45
)
Co-authored-by: Yury Selivanov <yury@magic.io>
This commit is contained in:
parent
78e14f8eb4
commit
eca085993c
|
@ -1106,10 +1106,13 @@ class BaseEventLoop(events.AbstractEventLoop):
|
||||||
ssl_handshake_timeout=ssl_handshake_timeout,
|
ssl_handshake_timeout=ssl_handshake_timeout,
|
||||||
call_connection_made=False)
|
call_connection_made=False)
|
||||||
|
|
||||||
|
# Pause early so that "ssl_protocol.data_received()" doesn't
|
||||||
|
# have a chance to get called before "ssl_protocol.connection_made()".
|
||||||
|
transport.pause_reading()
|
||||||
|
|
||||||
transport.set_protocol(ssl_protocol)
|
transport.set_protocol(ssl_protocol)
|
||||||
self.call_soon(ssl_protocol.connection_made, transport)
|
self.call_soon(ssl_protocol.connection_made, transport)
|
||||||
if not transport.is_reading():
|
self.call_soon(transport.resume_reading)
|
||||||
self.call_soon(transport.resume_reading)
|
|
||||||
|
|
||||||
await waiter
|
await waiter
|
||||||
return ssl_protocol._app_transport
|
return ssl_protocol._app_transport
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
Pause the transport as early as possible to further reduce the risk of
|
||||||
|
data_received() being called before connection_made().
|
Loading…
Reference in New Issue