File tree Expand file tree Collapse file tree 3 files changed +18
-1
lines changed
Expand file tree Collapse file tree 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):
543543 def _get_extra_info (self , name , default = None ):
544544 if name in self ._extra :
545545 return self ._extra [name ]
546- else :
546+ elif self . _transport is not None :
547547 return self ._transport .get_extra_info (name , default )
548+ else :
549+ return default
548550
549551 def _start_shutdown (self ):
550552 if self ._in_shutdown :
Original file line number Diff line number Diff line change @@ -95,5 +95,17 @@ def test_connection_lost(self):
9595 test_utils .run_briefly (self .loop )
9696 self .assertIsInstance (waiter .exception (), ConnectionAbortedError )
9797
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+
98110if __name__ == '__main__' :
99111 unittest .main ()
Original file line number Diff line number Diff line change @@ -26,6 +26,9 @@ Core and Builtins
2626Library
2727-------
2828
29+ - bpo-29742: get_extra_info() raises exception if get called on closed ssl transport.
30+ Patch by Nikolay Kim.
31+
2932- bpo-8256: Fixed possible failing or crashing input() if attributes "encoding"
3033 or "errors" of sys.stdin or sys.stdout are not set or are not strings.
3134
You can’t perform that action at this time.
0 commit comments