Fix issue #16646: ftplib.FTP.makeport() might lose socket error details. (patch by Serhiy Storchaka)
This commit is contained in:
parent
f635172c72
commit
fc3278802c
|
@ -284,20 +284,24 @@ class FTP:
|
||||||
|
|
||||||
def makeport(self):
|
def makeport(self):
|
||||||
'''Create a new socket and send a PORT command for it.'''
|
'''Create a new socket and send a PORT command for it.'''
|
||||||
msg = "getaddrinfo returns an empty list"
|
err = None
|
||||||
sock = None
|
sock = None
|
||||||
for res in socket.getaddrinfo(None, 0, self.af, socket.SOCK_STREAM, 0, socket.AI_PASSIVE):
|
for res in socket.getaddrinfo(None, 0, self.af, socket.SOCK_STREAM, 0, socket.AI_PASSIVE):
|
||||||
af, socktype, proto, canonname, sa = res
|
af, socktype, proto, canonname, sa = res
|
||||||
try:
|
try:
|
||||||
sock = socket.socket(af, socktype, proto)
|
sock = socket.socket(af, socktype, proto)
|
||||||
sock.bind(sa)
|
sock.bind(sa)
|
||||||
except socket.error as msg:
|
except socket.error as err:
|
||||||
if sock:
|
if sock:
|
||||||
sock.close()
|
sock.close()
|
||||||
sock = None
|
sock = None
|
||||||
continue
|
continue
|
||||||
break
|
break
|
||||||
if not sock:
|
if sock is None:
|
||||||
|
if err is not None:
|
||||||
|
raise err
|
||||||
|
else:
|
||||||
|
raise socket.error("getaddrinfo returns an empty list")
|
||||||
raise socket.error(msg)
|
raise socket.error(msg)
|
||||||
sock.listen(1)
|
sock.listen(1)
|
||||||
port = sock.getsockname()[1] # Get proper port
|
port = sock.getsockname()[1] # Get proper port
|
||||||
|
|
|
@ -179,6 +179,9 @@ Core and Builtins
|
||||||
Library
|
Library
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
- Issue #16646: ftplib.FTP.makeport() might lose socket error details.
|
||||||
|
(patch by Serhiy Storchaka)
|
||||||
|
|
||||||
- Issue #16626: Fix infinite recursion in glob.glob() on Windows when the
|
- Issue #16626: Fix infinite recursion in glob.glob() on Windows when the
|
||||||
pattern contains a wildcard in the drive or UNC path. Patch by Serhiy
|
pattern contains a wildcard in the drive or UNC path. Patch by Serhiy
|
||||||
Storchaka.
|
Storchaka.
|
||||||
|
|
Loading…
Reference in New Issue