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 @@ -542,8 +542,10 @@ def eof_received(self):
542542 def _get_extra_info (self , name , default = None ):
543543 if name in self ._extra :
544544 return self ._extra [name ]
545- else :
545+ elif self . _transport is not None :
546546 return self ._transport .get_extra_info (name , default )
547+ else :
548+ return default
547549
548550 def _start_shutdown (self ):
549551 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 @@ -43,6 +43,9 @@ Extension Modules
4343Library
4444-------
4545
46+ - bpo-29742: get_extra_info() raises exception if get called on closed ssl transport.
47+ Patch by Nikolay Kim.
48+
4649- bpo-8256: Fixed possible failing or crashing input() if attributes "encoding"
4750 or "errors" of sys.stdin or sys.stdout are not set or are not strings.
4851
You can’t perform that action at this time.
0 commit comments