◐ Shell
reader mode source ↗
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
File filter
Conversations
Jump to
Diff view
Apply and reload
Show whitespace
Diff view
Apply and reload
7 changes: 5 additions & 2 deletions Lib/asyncio/sslproto.py
Original file line number Diff line number Diff line change
@@ -551,8 +551,11 @@ def _get_extra_info(self, name, default=None):
def _start_shutdown(self):
if self._in_shutdown:
return
self._in_shutdown = True
self._write_appdata(b'')

def _write_appdata(self, data):
self._write_backlog.append((data, 0))
Expand Down
15 changes: 15 additions & 0 deletions Lib/test/test_asyncio/test_sslproto.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ def mock_handshake(callback):
sslpipe.do_handshake.side_effect = mock_handshake
with mock.patch('asyncio.sslproto._SSLPipe', return_value=sslpipe):
ssl_proto.connection_made(transport)

def test_cancel_handshake(self):
# Python issue #23197: cancelling a handshake must not raise an
Expand Down Expand Up @@ -95,6 +96,20 @@ def test_connection_lost(self):
test_utils.run_briefly(self.loop)
self.assertIsInstance(waiter.exception(), ConnectionAbortedError)

def test_get_extra_info_on_closed_connection(self):
waiter = asyncio.Future(loop=self.loop)
ssl_proto = self.ssl_protocol(waiter)
Expand Down
3 changes: 3 additions & 0 deletions Misc/NEWS
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,9 @@ Core and Builtins
Library
-------

- bpo-27585: Fix waiter cancellation in asyncio.Lock.
Patch by Mathieu Sornay.

Toggle all file notes Toggle all file annotations