Your IP : 18.216.219.61


Current Path : /lib64/python3.6/__pycache__/
Upload File :
Current File : //lib64/python3.6/__pycache__/ftplib.cpython-36.opt-2.pyc

3


 \���@sRddlZddlZddlmZddddddgZd	Zd
ZdZGdd
�d
e�ZGdd�de�Z	Gdd�de�Z
Gdd�de�ZGdd�de�Zee
efZdZdZGdd�d�ZyddlZWnek
r�dZYn0XejZGdd�de�Zejd�ee
eejfZdadd�Zdadd�Zdd�Zdd�Zdd �Z d(d#d$�Z!d%d&�Z"e#d'k�rNe"�dS))�N)�_GLOBAL_DEFAULT_TIMEOUT�FTP�error_reply�
error_temp�
error_perm�error_proto�
all_errors��i c@seZdZdS)�ErrorN)�__name__�
__module__�__qualname__�rr�/usr/lib64/python3.6/ftplib.pyr9src@seZdZdS)rN)rr
rrrrrr:sc@seZdZdS)rN)rr
rrrrrr;sc@seZdZdS)rN)rr
rrrrrr<sc@seZdZdS)rN)rr
rrrrrr=sz
s
c@s�eZdZdZdZeZeZdZ	dZ
dZdZdZ
ddddedfdd�Zdd	�Zd
d�Zd[d
d�Zdd�Zdd�ZeZdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Z d)d*�Z!d+d,�Z"d-d.�Z#d/d0�Z$d\d1d2�Z%d]d3d4�Z&d^d5d6�Z'd_d8d9�Z(d`d:d;�Z)dad<d=�Z*dbd>d?�Z+d@dA�Z,dBdC�Z-dDdE�Z.dgfdFdG�Z/dHdI�Z0dJdK�Z1dLdM�Z2dNdO�Z3dPdQ�Z4dRdS�Z5dTdU�Z6dVdW�Z7dXdY�Z8dS)crr�Nr	zlatin-1cCs0||_||_|r,|j|�|r,|j|||�dS)N)�source_address�timeout�connect�login)�self�host�user�passwd�acctrrrrr�__init__ps
zFTP.__init__cCs|S)Nr)rrrr�	__enter__ysz
FTP.__enter__cGsN|jdk	rJz*y|j�Wnttfk
r0YnXWd|jdk	rH|j�XdS)N)�sock�quit�OSError�EOFError�close)r�argsrrr�__exit__}s


zFTP.__exit__i�cCs�|dkr||_|dkr||_|dkr*||_|dk	r8||_tj|j|jf|j|jd�|_|jj|_|jj	d|j
d�|_|j�|_
|j
S)Nrri�)r�r)�encodingi���)r�portrr�socket�create_connectionrZfamily�af�makefiler%�file�getresp�welcome)rrr&rrrrrr�s

zFTP.connectcCs|jrtd|j|j��|jS)Nz	*welcome*)�	debugging�print�sanitizer-)rrrr�
getwelcome�szFTP.getwelcomecCs
||_dS)N)r.)r�levelrrr�set_debuglevel�szFTP.set_debuglevelcCs
||_dS)N)�
passiveserver)r�valrrr�set_pasv�szFTP.set_pasvcCsJ|dd�dkrBt|jd��}|dd�d|d||d�}t|�S)N��pass �PASS z
�*>r9r8)�len�rstrip�repr)r�s�irrrr0�s$zFTP.sanitizecCsRd|ksd|krtd��|t}|jdkr:td|j|��|jj|j|j��dS)N�
�
z4an illegal newline character should not be containedr	z*put*)	�
ValueError�CRLFr.r/r0r�sendall�encoder%)r�linerrr�putline�s
zFTP.putlinecCs$|jrtd|j|��|j|�dS)Nz*cmd*)r.r/r0rG)rrFrrr�putcmd�sz
FTP.putcmdcCs�|jj|jd�}t|�|jkr.td|j��|jdkrHtd|j|��|sPt�|dd�t	krn|dd�}n|dd�t	kr�|dd�}|S)	Nr	zgot more than %d bytesz*get*����rJ���rK)
r+�readline�maxliner;rr.r/r0r rC)rrFrrr�getline�s
zFTP.getlinecCsd|j�}|dd�dkr`|dd�}x:|j�}|d|}|dd�|kr&|dd�dkr&Pq&W|S)N���-rA)rN)rrF�codeZnextlinerrr�getmultiline�szFTP.getmultilinecCsp|j�}|jrtd|j|��|dd�|_|dd�}|d	krD|S|dkrTt|��|dkrdt|��t|��dS)
Nz*resp*rOr	�1�2�3�4�5>rUrVrT)rSr.r/r0Zlastresprrr)r�resp�crrrr,�szFTP.getrespcCs$|j�}|dd�dkr t|��|S)Nr	rU)r,r)rrYrrr�voidresp�szFTP.voidrespcCsTdt}|jdkr"td|j|��|jj|t�|j�}|dd�dkrPt|��|S)	NsABORr	z*put urgent*rO�426�225�226>r^r]r\)	�B_CRLFr.r/r0rrD�MSG_OOBrSr)rrFrYrrr�aborts
z	FTP.abortcCs|j|�|j�S)N)rHr,)r�cmdrrr�sendcmds
zFTP.sendcmdcCs|j|�|j�S)N)rHr[)rrbrrr�voidcmds
zFTP.voidcmdcCsB|jd�}t|d�t|d�g}||}ddj|�}|j|�S)N�.�zPORT �,)�splitr=�joinrd)rrr&ZhbytesZpbytes�bytesrbrrr�sendports

zFTP.sendportcCsbd}|jtjkrd}|jtjkr$d}|dkr4td��dt|�|t|�dg}ddj|�}|j|�S)Nrr	rIzunsupported address familyrzEPRT �|)r)r'�AF_INETZAF_INET6rr=rird)rrr&r)Zfieldsrbrrr�sendeprt"szFTP.sendeprtc
Csd}d}x�tjdd|jtjdtj�D]j}|\}}}}}ytj|||�}|j|�Wn8tk
r�}	z|	}|rt|j�d}w$WYdd}	~	XnXPq$W|dkr�|dk	r�|�ntd��|jd�|j	�d}
|j
j	�d}|jtjkr�|j||
�}n|j
||
�}|jtk	�r|j|j�|S)Nrz!getaddrinfo returns an empty listr	)r'Zgetaddrinfor)ZSOCK_STREAMZ
AI_PASSIVEZbindrr!ZlistenZgetsocknamerrmrkrnrr�
settimeout)
r�errr�resr)Zsocktype�protoZ	canonnameZsa�_r&rrYrrr�makeport/s6 
zFTP.makeportcCsB|jtjkr t|jd��\}}nt|jd�|jj��\}}||fS)N�PASVZEPSV)r)r'rm�parse227rc�parse229rZgetpeername)rrr&rrr�makepasvOszFTP.makepasvc

Cs6d}|jr�|j�\}}tj||f|j|jd�}yL|dk	rF|jd|�|j|�}|ddkrd|j�}|ddkrxt|��Wn|j	��YnXn�|j
��r}|dk	r�|jd|�|j|�}|ddkr�|j�}|ddkr�t|��|j�\}}	|jtk	�r
|j
|j�WdQRX|dd�dk�r.t|�}||fS)N)rzREST %srrUrTrO�150)r4rxr'r(rrrcr,rr!rtZacceptrro�parse150)
rrb�rest�sizerr&�connrYrZsockaddrrrr�ntransfercmdVs<




zFTP.ntransfercmdcCs|j||�dS)Nr)r~)rrbr{rrr�transfercmd�szFTP.transfercmdcCs�|sd}|sd}|sd}|dkr0|dkr0|d}|jd|�}|ddkrX|jd|�}|ddkrr|jd	|�}|dd
kr�t|��|S)NZ	anonymousrrQz
anonymous@zUSER rrVzPASS zACCT rU>rrQ)rcr)rrrrrYrrrr�s z	FTP.login� c
Csb|jd�|j||��>}x|j|�}|s*P||�qWtdk	rPt|t�rP|j�WdQRX|j�S)NzTYPE I)rdrZrecv�
_SSLSocket�
isinstance�unwrapr[)rrb�callback�	blocksizer{r}�datarrr�
retrbinary�s

zFTP.retrbinarycCs�|dkrt}|jd�}|j|���}|jd|jd���}x�|j|jd�}t|�|jkrbtd|j��|j	dkrzt
dt|��|s�P|d	d�tkr�|dd
�}n|dd�dkr�|dd�}||�q6Wt
dk	r�t|t
�r�|j�WdQRXWdQRX|j�S)
NzTYPE Ar$)r%r	zgot more than %d bytesrIz*retr*rArJrJrKrK)�
print_linercrr*r%rLrMr;rr.r/r=rCr�r�r�r[)rrbr�rYr}�fprFrrr�	retrlines�s*

z
FTP.retrlinesc
Csp|jd�|j||��L}x*|j|�}|s*P|j|�|r||�qWtdk	r^t|t�r^|j�WdQRX|j�S)NzTYPE I)rdr�readrDr�r�r�r[)rrbr�r�r�r{r}�bufrrr�
storbinary�s


zFTP.storbinaryc
Cs�|jd�|j|���}x||j|jd�}t|�|jkrDtd|j��|sJP|dd�tkrz|dtkrr|dd�}|t}|j|�|r||�qWtdk	r�t	|t�r�|j
�WdQRX|j�S)NzTYPE Ar	zgot more than %d bytesrIrJrKrK)rdrrLrMr;rr_rDr�r�r�r[)rrbr�r�r}r�rrr�	storliness$

z
FTP.storlinescCsd|}|j|�S)NzACCT )rd)rZpasswordrbrrrr$szFTP.acctcGs4d}x|D]}|d|}q
Wg}|j||j�|S)NZNLST� )r��append)rr"rb�arg�filesrrr�nlst)s
zFTP.nlstcGsld}d}|dd�r>t|d�td�kr>|dd�|d}}x|D]}|rD|d|}qDW|j||�dS)	NZLISTr	rr�rKrKrKrK)�typer�)rr"rb�funcr�rrr�dir2s 
zFTP.dirc
cs�|r|jddj|�d�|r*d|}nd}g}|j||j�xh|D]`}|jt�jd�\}}}i}	x6|dd�jd�D] }
|
jd�\}}}||	|j�<qxW||	fVqFWdS)	Nz
OPTS MLST �;zMLSD %sZMLSDr�r	�=rK)	rcrir�r�r<rC�	partitionrh�lower)
r�pathZfactsrb�linesrFZfacts_foundrs�name�entryZfact�key�valuerrr�mlsdAs

zFTP.mlsdcCs0|jd|�}|ddkr"t|��|jd|�S)NzRNFR rrVzRNTO )rcrrd)rZfromnameZtonamerYrrr�rename]sz
FTP.renamecCs.|jd|�}|dd�dkr"|St|��dS)NzDELE rO�250�200>r�r�)rcr)r�filenamerYrrr�deletedsz
FTP.deletecCsn|dkrPy
|jd�Stk
rL}z|jddd�dkr<�WYdd}~Xq\Xn|dkr\d}d|}|j|�S)	Nz..ZCDUPrrO�500rrezCWD )rdrr")r�dirname�msgrbrrr�cwdls
zFTP.cwdcCs:|jd|�}|dd�dkr6|dd�j�}t|�SdS)NzSIZE rOZ213)rc�strip�int)rr�rYr>rrrr|yszFTP.sizecCs$|jd|�}|jd�sdSt|�S)NzMKD �257r)rd�
startswith�parse257)rr�rYrrr�mkd�s
zFTP.mkdcCs|jd|�S)NzRMD )rd)rr�rrr�rmd�szFTP.rmdcCs |jd�}|jd�sdSt|�S)NZPWDr�r)rdr�r�)rrYrrr�pwd�s

zFTP.pwdcCs|jd�}|j�|S)NZQUIT)rdr!)rrYrrrr�s
zFTP.quitcCsDz |j}d|_|dk	r|j�Wd|j}d|_|dk	r>|j�XdS)N)r+r!r)rr+rrrrr!�sz	FTP.close����)rrr�N)N)N)rrr)r�N)N)r�NN)N)9rr
rr.r�FTP_PORTr&�MAXLINErMrr+r-r4r%rrrr#rr1r3�debugr6r0rGrHrNrSr,r[rarcrdrkrnrtrxr~rrr�r�r�r�rr�r�r�r�r�r�r|r�r�r�rr!rrrrrJsh

	

 
7



#

	
		c	@sjeZdZejZdddddddedf	dd�Zddd�Zdd	�Z	d
d�Z
dd
�Zdd�Zddd�Z
dd�ZdS)�FTP_TLSrNc
Cs�|dk	r|dk	rtd��|dk	r0|dk	r0td��|dk	s@|dk	rVddl}
|
jdtd�||_||_|dkr|tj|j||d�}||_	d|_
tj|||||||	�dS)Nz4context and keyfile arguments are mutually exclusivez5context and certfile arguments are mutually exclusiverzAkeyfile and certfile are deprecated, use a custom context insteadrI)�certfile�keyfileF)
rB�warnings�warn�DeprecationWarningr�r��sslZ_create_stdlib_context�ssl_version�context�_prot_prr)rrrrrr�r�r�rrr�rrrr�s"zFTP_TLS.__init__TcCs,|rt|jtj�r|j�tj||||�S)N)r�rr��	SSLSocket�authrr)rrrrZsecurerrrr�sz
FTP_TLS.logincCsft|jtj�rtd��|jtjkr.|jd�}n
|jd�}|jj	|j|j
d�|_|jjd|jd�|_
|S)NzAlready using TLSzAUTH TLSzAUTH SSL)�server_hostnamer$)�moder%)r�rr�r�rBr��PROTOCOL_SSLv23rdr��wrap_socketrr*r%r+)rrYrrrr��s

zFTP_TLS.authcCs0t|jtj�std��|jd�}|jj�|_|S)Nz
not using TLSZCCC)r�rr�r�rBrdr�)rrYrrr�ccc�s

zFTP_TLS.ccccCs|jd�|jd�}d|_|S)NzPBSZ 0zPROT PT)rdr�)rrYrrr�prot_ps

zFTP_TLS.prot_pcCs|jd�}d|_|S)NzPROT CF)rdr�)rrYrrr�prot_cs
zFTP_TLS.prot_ccCs2tj|||�\}}|jr*|jj||jd�}||fS)N)r�)rr~r�r�r�r)rrbr{r}r|rrrr~s

zFTP_TLS.ntransfercmdcCs8dt}|jj|�|j�}|dd�dkr4t|��|S)NsABORrOr\r]r^>r]r^r\)r_rrDrSr)rrFrYrrrra$sz
FTP_TLS.abort)rrrT)N)rr
rr�r�r�rrrr�r�r�r�r~rarrrrr��s!



r�cCs\|dd�dkrt|��tdkr<ddl}|jd|j|jB�atj|�}|sNdSt|jd��S)NrOryrz150 .* \((\d+) bytes\)r	)	r�_150_re�re�compile�
IGNORECASE�ASCII�matchr��group)rYr��mrrrrz3s
rzcCs�|dd�dkrt|��tdkr6ddl}|jd|j�atj|�}|sLt|��|j�}dj|dd��}t	|d�d>t	|d�}||fS)	NrOZ227rz#(\d+),(\d+),(\d+),(\d+),(\d+),(\d+)rerP�r7)
r�_227_rer�r�r��searchr�groupsrir�)rYr�r�Znumbersrr&rrrrvGs
rvcCs�|dd�dkrt|��|jd�}|dkr2t|��|jd|d�}|dkrRt|��||d||dkrrt|��||d|�j||d�}t|�dkr�t|��|d}t|d�}||fS)NrOZ229�(r�)r	r7)r�findrrhr;r�)rYZpeer�left�right�partsrr&rrrrw[s 
rwcCs�|dd�dkrt|��|dd�dkr,dSd}d}t|�}xJ||kr�||}|d}|dkr|||ksr||dkrtP|d}||}q>W|S)NrOr�r7z "rr	�")rr;)rYr�r?�nrZrrrr�qs 
r�cCst|�dS)N)r/)rFrrrr��sr�r�Ic	Cs�|s|}d|}|j|�|j|�t|jd��\}}|j||�|jd|�}|dd�dkrdt�|jd|�}|dd�d	kr�t�|j�|j�dS)
NzTYPE ruzSTOR rO�125ryzRETR >ryr�>ryr�)rdrvrcrkrr[)	�sourceZ
sourcename�targetZ
targetnamer�Z
sourcehostZ
sourceportZtreplyZsreplyrrr�ftpcp�s

r�cCs�ttj�dkr"ttj�tjd�ddl}d}d}x"tjddkrT|d}tjd=q4Wtjddd�dkr�tjddd�}tjd=tjd}t|�}|j	|�d}}}y|j|�}Wn(t
k
r�|dk	r�tjjd�Yn:Xy|j
|�\}}}Wn"tk
�rtjjd�YnX|j|||�x�tjdd�D]�}	|	dd�d	k�rf|j|	dd��nt|	dd�dk�r�d
}
|	dd��r�|
d|	dd�}
|j|
�}n0|	dk�r�|j|j�n|jd
|	tjjd��q<W|j�dS)NrIrr	z-dz-rrz5Could not open account file -- using anonymous login.z$No account -- using anonymous login.z-lZCWDr�z-pzRETR i)r;�sys�argvr/�test�__doc__�exit�netrcrr3r�stderr�writeZauthenticators�KeyErrorrr�rcr6r4r��stdoutr)r�r.ZrcfilerZftpZuseridrrZnetrcobjr+rbrYrrrr��sP	





r��__main__)rr�)$r�r'r�__all__r`r�r��	Exceptionrrrrrrr rrCr_rr��ImportErrorr�r�r�r�ZSSLErrorr�rzr�rvrwr�r�r�r�rrrrr�<module>'sN

d
|

9