Lines Matching refs:self

87     Then use self.connect() with optional host and port argument.
109 def __init__(self, host='', user='', passwd='', acct='',
117 self.encoding = encoding
118 self.source_address = source_address
119 self.timeout = timeout
121 self.connect(host)
123 self.login(user, passwd, acct)
125 def __enter__(self):
126 return self
129 def __exit__(self, *args):
130 if self.sock is not None:
132 self.quit()
136 if self.sock is not None:
137 self.close()
139 def connect(self, host='', port=0, timeout=-999, source_address=None):
148 self.host = host
150 self.port = port
152 self.timeout = timeout
153 if self.timeout is not None and not self.timeout:
156 self.source_address = source_address
157 sys.audit("ftplib.connect", self, self.host, self.port)
158 self.sock = socket.create_connection((self.host, self.port), self.timeout,
159 source_address=self.source_address)
160 self.af = self.sock.family
161 self.file = self.sock.makefile('r', encoding=self.encoding)
162 self.welcome = self.getresp()
163 return self.welcome
165 def getwelcome(self):
168 if self.debugging:
169 print('*welcome*', self.sanitize(self.welcome))
170 return self.welcome
172 def set_debuglevel(self, level):
178 self.debugging = level
181 def set_pasv(self, val):
185 self.passiveserver = val
188 def sanitize(self, s):
195 def putline(self, line):
198 sys.audit("ftplib.sendcmd", self, line)
200 if self.debugging > 1:
201 print('*put*', self.sanitize(line))
202 self.sock.sendall(line.encode(self.encoding))
205 def putcmd(self, line):
206 if self.debugging: print('*cmd*', self.sanitize(line))
207 self.putline(line)
211 def getline(self):
212 line = self.file.readline(self.maxline + 1)
213 if len(line) > self.maxline:
214 raise Error("got more than %d bytes" % self.maxline)
215 if self.debugging > 1:
216 print('*get*', self.sanitize(line))
229 def getmultiline(self):
230 line = self.getline()
234 nextline = self.getline()
243 def getresp(self):
244 resp = self.getmultiline()
245 if self.debugging:
246 print('*resp*', self.sanitize(resp))
247 self.lastresp = resp[:3]
257 def voidresp(self):
259 resp = self.getresp()
264 def abort(self):
270 if self.debugging > 1:
271 print('*put urgent*', self.sanitize(line))
272 self.sock.sendall(line, MSG_OOB)
273 resp = self.getmultiline()
278 def sendcmd(self, cmd):
280 self.putcmd(cmd)
281 return self.getresp()
283 def voidcmd(self, cmd):
285 self.putcmd(cmd)
286 return self.voidresp()
288 def sendport(self, host, port):
296 return self.voidcmd(cmd)
298 def sendeprt(self, host, port):
301 if self.af == socket.AF_INET:
303 if self.af == socket.AF_INET6:
309 return self.voidcmd(cmd)
311 def makeport(self):
313 sock = socket.create_server(("", 0), family=self.af, backlog=1)
315 host = self.sock.getsockname()[0] # Get proper host
316 if self.af == socket.AF_INET:
317 resp = self.sendport(host, port)
319 resp = self.sendeprt(host, port)
320 if self.timeout is not _GLOBAL_DEFAULT_TIMEOUT:
321 sock.settimeout(self.timeout)
324 def makepasv(self):
326 if self.af == socket.AF_INET:
327 untrusted_host, port = parse227(self.sendcmd('PASV'))
328 if self.trust_server_pasv_ipv4_address:
331 host = self.sock.getpeername()[0]
333 host, port = parse229(self.sendcmd('EPSV'), self.sock.getpeername())
336 def ntransfercmd(self, cmd, rest=None):
352 if self.passiveserver:
353 host, port = self.makepasv()
354 conn = socket.create_connection((host, port), self.timeout,
355 source_address=self.source_address)
358 self.sendcmd("REST %s" % rest)
359 resp = self.sendcmd(cmd)
367 resp = self.getresp()
374 with self.makeport() as sock:
376 self.sendcmd("REST %s" % rest)
377 resp = self.sendcmd(cmd)
380 resp = self.getresp()
384 if self.timeout is not _GLOBAL_DEFAULT_TIMEOUT:
385 conn.settimeout(self.timeout)
391 def transfercmd(self, cmd, rest=None):
393 return self.ntransfercmd(cmd, rest)[0]
395 def login(self, user = '', passwd = '', acct = ''):
412 resp = self.sendcmd('USER ' + user)
414 resp = self.sendcmd('PASS ' + passwd)
416 resp = self.sendcmd('ACCT ' + acct)
421 def retrbinary(self, cmd, callback, blocksize=8192, rest=None):
435 self.voidcmd('TYPE I')
436 with self.transfercmd(cmd, rest) as conn:
445 return self.voidresp()
447 def retrlines(self, cmd, callback = None):
461 resp = self.sendcmd('TYPE A')
462 with self.transfercmd(cmd) as conn, \
463 conn.makefile('r', encoding=self.encoding) as fp:
465 line = fp.readline(self.maxline + 1)
466 if len(line) > self.maxline:
467 raise Error("got more than %d bytes" % self.maxline)
468 if self.debugging > 2:
480 return self.voidresp()
482 def storbinary(self, cmd, fp, blocksize=8192, callback=None, rest=None):
497 self.voidcmd('TYPE I')
498 with self.transfercmd(cmd, rest) as conn:
509 return self.voidresp()
511 def storlines(self, cmd, fp, callback=None):
523 self.voidcmd('TYPE A')
524 with self.transfercmd(cmd) as conn:
526 buf = fp.readline(self.maxline + 1)
527 if len(buf) > self.maxline:
528 raise Error("got more than %d bytes" % self.maxline)
540 return self.voidresp()
542 def acct(self, password):
545 return self.voidcmd(cmd)
547 def nlst(self, *args):
553 self.retrlines(cmd, files.append)
556 def dir(self, *args):
569 self.retrlines(cmd, func)
571 def mlsd(self, path="", facts=[]):
584 self.sendcmd("OPTS MLST " + ";".join(facts) + ";")
590 self.retrlines(cmd, lines.append)
599 def rename(self, fromname, toname):
601 resp = self.sendcmd('RNFR ' + fromname)
604 return self.voidcmd('RNTO ' + toname)
606 def delete(self, filename):
608 resp = self.sendcmd('DELE ' + filename)
614 def cwd(self, dirname):
618 return self.voidcmd('CDUP')
625 return self.voidcmd(cmd)
627 def size(self, filename):
630 resp = self.sendcmd('SIZE ' + filename)
635 def mkd(self, dirname):
637 resp = self.voidcmd('MKD ' + dirname)
644 def rmd(self, dirname):
646 return self.voidcmd('RMD ' + dirname)
648 def pwd(self):
650 resp = self.voidcmd('PWD')
657 def quit(self):
659 resp = self.voidcmd('QUIT')
660 self.close()
663 def close(self):
666 file = self.file
667 self.file = None
671 sock = self.sock
672 self.sock = None
718 def __init__(self, host='', user='', passwd='', acct='',
732 self.keyfile = keyfile
733 self.certfile = certfile
735 context = ssl._create_stdlib_context(self.ssl_version,
738 self.context = context
739 self._prot_p = False
743 def login(self, user='', passwd='', acct='', secure=True):
744 if secure and not isinstance(self.sock, ssl.SSLSocket):
745 self.auth()
748 def auth(self):
750 if isinstance(self.sock, ssl.SSLSocket):
752 if self.ssl_version >= ssl.PROTOCOL_TLS:
753 resp = self.voidcmd('AUTH TLS')
755 resp = self.voidcmd('AUTH SSL')
756 self.sock = self.context.wrap_socket(self.sock, server_hostname=self.host)
757 self.file = self.sock.makefile(mode='r', encoding=self.encoding)
760 def ccc(self):
762 if not isinstance(self.sock, ssl.SSLSocket):
764 resp = self.voidcmd('CCC')
765 self.sock = self.sock.unwrap()
768 def prot_p(self):
779 self.voidcmd('PBSZ 0')
780 resp = self.voidcmd('PROT P')
781 self._prot_p = True
784 def prot_c(self):
786 resp = self.voidcmd('PROT C')
787 self._prot_p = False
792 def ntransfercmd(self, cmd, rest=None):
794 if self._prot_p:
795 conn = self.context.wrap_socket(conn,
796 server_hostname=self.host)
799 def abort(self):
802 self.sock.sendall(line)
803 resp = self.getmultiline()