ó ñ1Mc@sŒdZddlTddlmZmZddlmZmZmZmZddlZddl Z ddl Z dZ de fd„ƒYZ dS( s^M2Crypto client-side FTP/TLS. This implementation complies with draft-murray-auth-ftp-ssl-07.txt. Example: >>> from M2Crypto import ftpslib >>> f = ftpslib.FTP_TLS() >>> f.connect('', 9021) '220 spinnaker.dyndns.org M2Crypto (Medusa) FTP/TLS server v0.07 ready.' >>> f.auth_tls() >>> f.set_pasv(0) >>> f.login('ftp', 'ngps@') '230 Ok.' >>> f.retrlines('LIST') -rw-rw-r-- 1 0 198 2326 Jul 3 1996 apache_pb.gif drwxrwxr-x 7 0 198 1536 Oct 10 2000 manual drwxrwxr-x 2 0 198 512 Oct 31 2000 modpy drwxrwxr-x 2 0 198 512 Oct 31 2000 bobo drwxr-xr-x 2 0 198 14336 May 28 15:54 postgresql drwxr-xr-x 4 100 198 512 May 16 17:19 home drwxr-xr-x 7 100 100 3584 Sep 23 2000 openacs drwxr-xr-x 10 0 0 512 Aug 5 2000 python1.5 -rw-r--r-- 1 100 198 326 Jul 29 03:29 index.html drwxr-xr-x 12 0 0 512 May 31 17:08 python2.1 '226 Transfer complete' >>> f.quit() '221 Goodbye.' >>> Copyright (c) 1999-2003 Ng Pheng Siong. All rights reserved.iÿÿÿÿ(t*(tparse150tparse227(t error_replyt error_tempt error_permt error_protoNtsslv23tFTP_TLScBsMeZdZddd„Zd„Zd„Zd„Zd„Zdd„Z RS(s+Python OO interface to client-side FTP/TLS.cCsG|dk r||_ntjtƒ|_tj||ƒd|_dS(s<Initialise the client. If 'host' is supplied, connect to it.iN(tNonetssl_ctxtSSLtContexttDEFAULT_PROTOCOLtFTPt__init__tprot(tselfthostR ((s6/usr/lib/python2.7/vendor-packages/M2Crypto/ftpslib.pyR1s   cCsb|jdƒtj|j|jƒ}|jƒ|jƒ|jƒ||_|jjƒ|_ dS(s;Secure the control connection per AUTH TLS, aka AUTH TLS-C.sAUTH TLSN( tvoidcmdR t ConnectionR tsockt setup_ssltset_connect_statet connect_ssltmakefiletfile(Rts((s6/usr/lib/python2.7/vendor-packages/M2Crypto/ftpslib.pytauth_tls:s     cCs t‚dS(s;Secure the control connection per AUTH SSL, aka AUTH TLS-P.N(tNotImplementedError(R((s6/usr/lib/python2.7/vendor-packages/M2Crypto/ftpslib.pytauth_sslDscCs'|jdƒ|jdƒd|_dS(sSet up secure data connection.sPBSZ 0sPROT PiN(RR(R((s6/usr/lib/python2.7/vendor-packages/M2Crypto/ftpslib.pytprot_pHs  cCs|jdƒd|_dS(s$Set up data connection in the clear.sPROT CiN(RR(R((s6/usr/lib/python2.7/vendor-packages/M2Crypto/ftpslib.pytprot_cNs cCsztj|||ƒ\}}|jrptj|j|ƒ}|jƒ|jƒ|j|j j ƒƒ|j ƒn||fS(sInitiate a data transfer.( Rt ntransfercmdRR RR RRt set_sessionRt get_sessionR(Rtcmdtresttconntsize((s6/usr/lib/python2.7/vendor-packages/M2Crypto/ftpslib.pyR!Ss    N( t__name__t __module__t__doc__R RRRRR R!(((s6/usr/lib/python2.7/vendor-packages/M2Crypto/ftpslib.pyR-s   (R*tftplibRRRRRRtsocketttimeR R RR(((s6/usr/lib/python2.7/vendor-packages/M2Crypto/ftpslib.pyt s "