Commit 37058af0 authored by Guido van Rossum's avatar Guido van Rossum

new sendport() interface; add test() program call

parent 040d200c
...@@ -198,10 +198,8 @@ class FTP: ...@@ -198,10 +198,8 @@ class FTP:
self.voidresp() self.voidresp()
# Send a PORT command with the current host and the given port number # Send a PORT command with the current host and the given port number
def sendport(self, port): def sendport(self, host, port):
hostname = socket.gethostname() hbytes = string.splitfields(host, '.')
hostaddr = socket.gethostbyname(hostname)
hbytes = string.splitfields(hostaddr, '.')
pbytes = [`port/256`, `port%256`] pbytes = [`port/256`, `port%256`]
bytes = hbytes + pbytes bytes = hbytes + pbytes
cmd = 'PORT ' + string.joinfields(bytes, ',') cmd = 'PORT ' + string.joinfields(bytes, ',')
...@@ -213,8 +211,9 @@ class FTP: ...@@ -213,8 +211,9 @@ class FTP:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.bind(('', 0)) sock.bind(('', 0))
sock.listen(1) sock.listen(1)
host, port = sock.getsockname() dummyhost, port = sock.getsockname() # Get proper port
resp = self.sendport(port) host, dummyport = self.sock.getsockname() # Get proper host
resp = self.sendport(host, port)
return sock return sock
# Send a port command and a transfer command, accept the connection # Send a port command and a transfer command, accept the connection
...@@ -439,3 +438,7 @@ def test(): ...@@ -439,3 +438,7 @@ def test():
ftp.retrbinary('RETR ' + file, \ ftp.retrbinary('RETR ' + file, \
sys.stdout.write, 1024) sys.stdout.write, 1024)
ftp.quit() ftp.quit()
if __name__ == '__main__':
test()
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment