mirror of https://github.com/python/cpython
Move some constant initialization from FTP.__init__() and FTP.connect()
to the class namespace. Allow FTP.close() to be called more than once without tossing cookies. (This seems to be a fairly common idiom for .close() methods, so let's try to be consistent.)
This commit is contained in:
parent
2fd456508f
commit
9c98a428ef
|
@ -91,22 +91,22 @@ class FTP:
|
||||||
and PORT or PASV commands.
|
and PORT or PASV commands.
|
||||||
'''
|
'''
|
||||||
|
|
||||||
|
debugging = 0
|
||||||
|
host = ''
|
||||||
|
port = FTP_PORT
|
||||||
|
sock = None
|
||||||
|
file = None
|
||||||
|
welcome = None
|
||||||
|
passiveserver = 1
|
||||||
|
|
||||||
# Initialization method (called by class instantiation).
|
# Initialization method (called by class instantiation).
|
||||||
# Initialize host to localhost, port to standard ftp port
|
# Initialize host to localhost, port to standard ftp port
|
||||||
# Optional arguments are host (for connect()),
|
# Optional arguments are host (for connect()),
|
||||||
# and user, passwd, acct (for login())
|
# and user, passwd, acct (for login())
|
||||||
def __init__(self, host='', user='', passwd='', acct=''):
|
def __init__(self, host='', user='', passwd='', acct=''):
|
||||||
# Initialize the instance to something mostly harmless
|
|
||||||
self.debugging = 0
|
|
||||||
self.host = ''
|
|
||||||
self.port = FTP_PORT
|
|
||||||
self.sock = None
|
|
||||||
self.file = None
|
|
||||||
self.welcome = None
|
|
||||||
resp = None
|
|
||||||
if host:
|
if host:
|
||||||
resp = self.connect(host)
|
self.connect(host)
|
||||||
if user: resp = self.login(user, passwd, acct)
|
if user: self.login(user, passwd, acct)
|
||||||
|
|
||||||
def connect(self, host='', port=0):
|
def connect(self, host='', port=0):
|
||||||
'''Connect to host. Arguments are:
|
'''Connect to host. Arguments are:
|
||||||
|
@ -114,7 +114,6 @@ class FTP:
|
||||||
- port: port to connect to (integer, default previous port)'''
|
- port: port to connect to (integer, default previous port)'''
|
||||||
if host: self.host = host
|
if host: self.host = host
|
||||||
if port: self.port = port
|
if port: self.port = port
|
||||||
self.passiveserver = 1
|
|
||||||
self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||||
self.sock.connect((self.host, self.port))
|
self.sock.connect((self.host, self.port))
|
||||||
self.file = self.sock.makefile('rb')
|
self.file = self.sock.makefile('rb')
|
||||||
|
@ -480,9 +479,10 @@ class FTP:
|
||||||
|
|
||||||
def close(self):
|
def close(self):
|
||||||
'''Close the connection without assuming anything about it.'''
|
'''Close the connection without assuming anything about it.'''
|
||||||
|
if self.file:
|
||||||
self.file.close()
|
self.file.close()
|
||||||
self.sock.close()
|
self.sock.close()
|
||||||
del self.file, self.sock
|
self.file = self.sock = None
|
||||||
|
|
||||||
|
|
||||||
_150_re = None
|
_150_re = None
|
||||||
|
|
Loading…
Reference in New Issue