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):
542
542
def _get_extra_info (self , name , default = None ):
543
543
if name in self ._extra :
544
544
return self ._extra [name ]
545
- else :
545
+ elif self . _transport is not None :
546
546
return self ._transport .get_extra_info (name , default )
547
+ else :
548
+ return default
547
549
548
550
def _start_shutdown (self ):
549
551
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 @@ -43,6 +43,9 @@ Extension Modules
43
43
Library
44
44
-------
45
45
46
+ - bpo-29742: get_extra_info() raises exception if get called on closed ssl transport.
47
+ Patch by Nikolay Kim.
48
+
46
49
- bpo-8256: Fixed possible failing or crashing input() if attributes "encoding"
47
50
or "errors" of sys.stdin or sys.stdout are not set or are not strings.
48
51
You can’t perform that action at this time.
0 commit comments