Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit fc32788

Browse files
committed
Fix issue #16646: ftplib.FTP.makeport() might lose socket error details. (patch by Serhiy Storchaka)
1 parent f635172 commit fc32788

2 files changed

Lines changed: 10 additions & 3 deletions

File tree

Lib/ftplib.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -284,20 +284,24 @@ def sendeprt(self, host, port):
284284

285285
def makeport(self):
286286
'''Create a new socket and send a PORT command for it.'''
287-
msg = "getaddrinfo returns an empty list"
287+
err = None
288288
sock = None
289289
for res in socket.getaddrinfo(None, 0, self.af, socket.SOCK_STREAM, 0, socket.AI_PASSIVE):
290290
af, socktype, proto, canonname, sa = res
291291
try:
292292
sock = socket.socket(af, socktype, proto)
293293
sock.bind(sa)
294-
except socket.error as msg:
294+
except socket.error as err:
295295
if sock:
296296
sock.close()
297297
sock = None
298298
continue
299299
break
300-
if not sock:
300+
if sock is None:
301+
if err is not None:
302+
raise err
303+
else:
304+
raise socket.error("getaddrinfo returns an empty list")
301305
raise socket.error(msg)
302306
sock.listen(1)
303307
port = sock.getsockname()[1] # Get proper port

Misc/NEWS

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,9 @@ Core and Builtins
179179
Library
180180
-------
181181

182+
- Issue #16646: ftplib.FTP.makeport() might lose socket error details.
183+
(patch by Serhiy Storchaka)
184+
182185
- Issue #16626: Fix infinite recursion in glob.glob() on Windows when the
183186
pattern contains a wildcard in the drive or UNC path. Patch by Serhiy
184187
Storchaka.

0 commit comments

Comments
 (0)