File tree 3 files changed +18
-1
lines changed
3 files changed +18
-1
lines changed Original file line number Diff line number Diff line change @@ -543,8 +543,10 @@ def eof_received(self):
543
543
def _get_extra_info (self , name , default = None ):
544
544
if name in self ._extra :
545
545
return self ._extra [name ]
546
- else :
546
+ elif self . _transport is not None :
547
547
return self ._transport .get_extra_info (name , default )
548
+ else :
549
+ return default
548
550
549
551
def _start_shutdown (self ):
550
552
if self ._in_shutdown :
Original file line number Diff line number Diff line change @@ -95,5 +95,17 @@ def test_connection_lost(self):
95
95
test_utils .run_briefly (self .loop )
96
96
self .assertIsInstance (waiter .exception (), ConnectionAbortedError )
97
97
98
+ def test_get_extra_info_on_closed_connection (self ):
99
+ waiter = asyncio .Future (loop = self .loop )
100
+ ssl_proto = self .ssl_protocol (waiter )
101
+ self .assertIsNone (ssl_proto ._get_extra_info ('socket' ))
102
+ default = object ()
103
+ self .assertIs (ssl_proto ._get_extra_info ('socket' , default ), default )
104
+ self .connection_made (ssl_proto )
105
+ self .assertIsNotNone (ssl_proto ._get_extra_info ('socket' ))
106
+ ssl_proto .connection_lost (None )
107
+ self .assertIsNone (ssl_proto ._get_extra_info ('socket' ))
108
+
109
+
98
110
if __name__ == '__main__' :
99
111
unittest .main ()
Original file line number Diff line number Diff line change @@ -335,6 +335,9 @@ Library
335
335
- bpo-28518: Start a transaction implicitly before a DML statement.
336
336
Patch by Aviv Palivoda.
337
337
338
+ - bpo-29742: get_extra_info() raises exception if get called on closed ssl transport.
339
+ Patch by Nikolay Kim.
340
+
338
341
- Issue #16285: urrlib.parse.quote is now based on RFC 3986 and hence includes
339
342
'~' in the set of characters that is not quoted by default. Patch by
340
343
Christian Theune and Ratnadeep Debnath.
You can’t perform that action at this time.
0 commit comments