mirror of
https://github.com/python/cpython.git
synced 2025-08-27 12:16:04 +00:00
bpo-37027: Return a proxy socket object from transp.get_extra_info('socket') (GH-13530)
Return a safe to use proxy socket object from `transport.get_extra_info('socket')` https://bugs.python.org/issue37027
This commit is contained in:
parent
674ee12600
commit
8cd5165ba0
7 changed files with 220 additions and 9 deletions
|
@ -25,6 +25,7 @@ from . import futures
|
|||
from . import protocols
|
||||
from . import sslproto
|
||||
from . import transports
|
||||
from . import trsock
|
||||
from .log import logger
|
||||
|
||||
|
||||
|
@ -171,7 +172,7 @@ class BaseSelectorEventLoop(base_events.BaseEventLoop):
|
|||
self.call_exception_handler({
|
||||
'message': 'socket.accept() out of system resource',
|
||||
'exception': exc,
|
||||
'socket': sock,
|
||||
'socket': trsock.TransportSocket(sock),
|
||||
})
|
||||
self._remove_reader(sock.fileno())
|
||||
self.call_later(constants.ACCEPT_RETRY_DELAY,
|
||||
|
@ -603,7 +604,7 @@ class _SelectorTransport(transports._FlowControlMixin,
|
|||
|
||||
def __init__(self, loop, sock, protocol, extra=None, server=None):
|
||||
super().__init__(extra, loop)
|
||||
self._extra['socket'] = sock
|
||||
self._extra['socket'] = trsock.TransportSocket(sock)
|
||||
try:
|
||||
self._extra['sockname'] = sock.getsockname()
|
||||
except OSError:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue