summaryrefslogtreecommitdiffstats
path: root/Lib/ftplib.py
diff options
context:
space:
mode:
authorGiampaolo Rodola <g.rodola@gmail.com>2019-04-08 22:34:02 (GMT)
committerGitHub <noreply@github.com>2019-04-08 22:34:02 (GMT)
commiteb7e29f2a9d075accc1ab3faf3612ac44f5e2183 (patch)
tree6d4d31556465bc34e12de0ebc98dd751cb0fc09a /Lib/ftplib.py
parent58721a903074d28151d008d8990c98fc31d1e798 (diff)
downloadcpython-eb7e29f2a9d075accc1ab3faf3612ac44f5e2183.zip
cpython-eb7e29f2a9d075accc1ab3faf3612ac44f5e2183.tar.gz
cpython-eb7e29f2a9d075accc1ab3faf3612ac44f5e2183.tar.bz2
bpo-35934: Add socket.create_server() utility function (GH-11784)
Diffstat (limited to 'Lib/ftplib.py')
-rw-r--r--Lib/ftplib.py21
1 files changed, 1 insertions, 20 deletions
diff --git a/Lib/ftplib.py b/Lib/ftplib.py
index 9611282..a9b1aee 100644
--- a/Lib/ftplib.py
+++ b/Lib/ftplib.py
@@ -302,26 +302,7 @@ class FTP:
def makeport(self):
'''Create a new socket and send a PORT command for it.'''
- err = None
- sock = None
- for res in socket.getaddrinfo(None, 0, self.af, socket.SOCK_STREAM, 0, socket.AI_PASSIVE):
- af, socktype, proto, canonname, sa = res
- try:
- sock = socket.socket(af, socktype, proto)
- sock.bind(sa)
- except OSError as _:
- err = _
- if sock:
- sock.close()
- sock = None
- continue
- break
- if sock is None:
- if err is not None:
- raise err
- else:
- raise OSError("getaddrinfo returns an empty list")
- sock.listen(1)
+ sock = socket.create_server(("", 0), family=self.af, backlog=1)
port = sock.getsockname()[1] # Get proper port
host = self.sock.getsockname()[0] # Get proper host
if self.af == socket.AF_INET: