Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
contego / home / tvault / .virtenv / lib / python2.7 / site-packages / paramiko / sftp_server.pyc
Size: Mime:
ó
°‹EYc@sdZddlZddlZddlZddlmZmZddlmZddl	m
Z
mZmZm
Z
mZddlmZddlmZddlmZdd	lmZmZmZmZdd
lmZddl	mZmZmZmZm 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?m@Z@ied6ed
6ZAde
efd„ƒYZBddlCmDZDdS(s
Server-mode SFTP support.
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¡eZdZed„Zd„Zd„Zd„Zed„ƒZ	ed„ƒZ
d„Zed„Z
dd	„Zd
„Zd„Zd„Zd
„Zd„ZRS(så
    Server-side SFTP subsystem support.  Since this is a `.SubsystemHandler`,
    it can be (and is meant to be) set as the handler for ``"sftp"`` requests.
    Use `.Transport.set_subsystem_handler` to activate this class.
    cOsŽtj|ƒtj||||ƒ|jƒ}tj|jƒdƒ|_|jƒ|_	d|_
i|_i|_||||Ž|_
dS(s
        The constructor for SFTPServer is meant to be called from within the
        `.Transport` as a subsystem handler.  ``server`` and any additional
        parameters or keyword parameters are passed from the original call to
        `.Transport.set_subsystem_handler`.

        :param .Channel channel: channel passed from the `.Transport`.
        :param str name: name of the requested subsystem.
        :param .ServerInterface server:
            the server object associated with this channel and subsystem
        :param sftp_si:
            a subclass of `.SFTPServerInterface` to use for handling individual
            requests.
        s.sftpiN(Rt__init__Rt
get_transportRt
get_loggertget_log_channeltloggertget_hexdumptultra_debugtnext_handlet
file_tabletfolder_tabletserver(tselftchanneltnameR@tsftp_sitlargstkwargst	transport((sI/home/tvault/.virtenv/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/home/tvault/.virtenv/lib/python2.7/site-packages/paramiko/sftp_server.pyRLZs
#c	Cs\||_|jtdt|ƒƒ|jƒ|jjƒxtrWy|jƒ\}}Wnet	k
r}|jtdƒdSt
k
rÀ}|jtdt|ƒƒ|jttj
ƒƒdSXt|ƒ}|jƒ}y|j|||ƒWq=t
k
rS}|jtdt|ƒƒ|jttj
ƒƒy|j|tƒWqTqTXq=Xq=WdS(Ns!Started sftp server on channel %ssEOF -- end of sessionsException on channel: s Exception in server processing: (RMRLR
treprt_send_server_versionR@tsession_startedtTruet_read_packettEOFErrort	ExceptiontstrRt
tb_stringsRtget_intt_processt_send_statusR(	RARCRGRBtttdatateRPtrequest_number((sI/home/tvault/.virtenv/lib/python2.7/site-packages/paramiko/sftp_server.pytstart_subsystemes2	

	
cCs~|jjƒtt|ƒjƒx!|jjƒD]}|jƒq0Wx!|jjƒD]}|jƒqTWi|_i|_dS(N(	R@t
session_endedRKR5tfinish_subsystemR>tvaluestcloseR?(RAtf((sI/home/tvault/.virtenv/lib/python2.7/site-packages/paramiko/sftp_server.pyRds
	cCs=|tjkrtS|tjks1|tjkr5tStSdS(su
        Convert an errno value (as from an ``OSError`` or ``IOError``) into a
        standard SFTP result code.  This is a convenience function for trapping
        exceptions in server code and returning an appropriate result.

        :param int e: an errno code, as from ``OSError.errno``.
        :return: an `int` SFTP error code like ``SFTP_NO_SUCH_FILE``.
        N(terrnotEACCESRtENOENTtENOTDIRRR(R`((sI/home/tvault/.virtenv/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(s:
        Change a file's attributes on the local filesystem.  The contents of
        ``attr`` are used to change the permissions, owner, group ownership,
        and/or modification & access time of the file, depending on which
        attributes are present in ``attr``.

        This is meant to be a handy helper function for translating SFTP file
        requests into local file operations.

        :param str filename:
            name of the file to alter (should usually be an absolute path).
        :param .SFTPAttributes attr: attributes to change.
        twin32sw+N(tsystplatformt_flagstFLAG_PERMISSIONStostchmodtst_modetFLAG_UIDGIDtchowntst_uidtst_gidtFLAG_AMTIMEtutimetst_atimetst_mtimet	FLAG_SIZEtopenttruncatetst_size(tfilenametattrRg((sI/home/tvault/.virtenv/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(Ns!unknown type for {0!r} type {1!r}(Rtadd_intt
isinstanceRt	add_int64tintRR
t
add_stringRIR	t_packRXtformatt_send_packet(RARaR^targRPtitem((sI/home/tvault/.virtenv/lib/python2.7/site-packages/paramiko/sftp_server.pyt	_response½s	

cCsžtt|ƒtƒs)|j||ƒdS|jtd|jƒƒ|jd7_|rn||j|jƒ<n||j	|jƒ<|j
|t|jƒƒdS(Nshx%di(RHRIt
SFTPHandleR]t	_set_nameRR=R?t	_get_nameR>RŽR(RARathandletfolder((sI/home/tvault/.virtenv/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/home/tvault/.virtenv/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/home/tvault/.virtenv/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/home/tvault/.virtenv/lib/python2.7/site-packages/paramiko/sftp_server.pyt_read_folderñs	


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/home/tvault/.virtenv/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(s;convert SFTP-style open() flags to Python's os.open() flags(RRRrtO_RDWRtO_WRONLYtO_RDONLYRtO_APPENDRtO_CREATRtO_TRUNCRtO_EXCL(RAtpflagstflags((sI/home/tvault/.virtenv/lib/python2.7/site-packages/paramiko/sftp_server.pyt_convert_pflags>s
	



cCs©|jtdt|ƒ|tkry|jƒ}|j|jƒƒ}tj|ƒ}|j	||j
j|||ƒƒn,|tkr|j
ƒ}||jkr¾|j|=|j|tƒdS||jkrü|j|jƒ|j|=|j|tƒdS|j|tdƒn“|tkrä|j
ƒ}|jƒ}|jƒ}	||jkrh|j|tdƒdS|j|j||	ƒ}
t|
ttfƒrÑt|
ƒdkr»|j|tƒqá|j|t|
ƒq¥|j||
ƒnÁ|tkr`|j
ƒ}|jƒ}|j
ƒ}
||jkr:|j|tdƒdS|j||j|j||
ƒƒnE|t kr—|jƒ}|j||j
j!|ƒƒn|t"krÝ|jƒ}|jƒ}|j||j
j#||ƒƒnÈ|t$kr&|jƒ}tj|ƒ}|j||j
j%||ƒƒn|t&kr]|jƒ}|j||j
j'|ƒƒnH|t(kr‰|jƒ}|j)||ƒdS|t*krç|j
ƒ}||jkrÇ|j|tdƒdS|j|}
|j+||
ƒn¾|t,krO|jƒ}|j
j-|ƒ}t.t/|ƒtƒr<|j|t0|ƒq¥|j||ƒnV|t1kr·|jƒ}|j
j2|ƒ}t.t/|ƒtƒr¤|j|t0|ƒq¥|j||ƒnî|t3krF|j
ƒ}||jkrõ|j|tdƒdS|j|j-ƒ}t.t/|ƒtƒr3|j|t0|ƒq¥|j||ƒn_|t4kr|jƒ}tj|ƒ}|j||j
j5||ƒƒn|t6krÿ|j
ƒ}tj|ƒ}||jkrÜ|j|tdƒdS|j||j|j5|ƒƒn¦|t7krs|jƒ}|j
j8|ƒ}t|ttfƒr`|j|t9d|dtƒƒq¥|j||ƒn2|t:kr¹|jƒ}|jƒ}|j||j
j;||ƒƒnì|t<kr|jƒ}|j
j=|ƒ}|j|t9d|dtƒƒn |t>kr•|jƒ}|dkr<|j?||ƒq¥|dkr‚|jƒ}|jƒ}|j||j
j@||ƒƒq¥|j|tAƒn|j|tAƒdS(NsRequest: %ssInvalid handleiiR–s
check-filesposix-rename@openssh.com(BRLR
RRtget_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/home/tvault/.virtenv/lib/python2.7/site-packages/paramiko/sftp_server.pyR\Ps



 "


"
N(t__name__t
__module__t__doc__RR6RLRbRdtstaticmethodRlRƒRŽtFalseR”R—R]RŸR£R½RÇR\(((sI/home/tvault/.virtenv/lib/python2.7/site-packages/paramiko/sftp_server.pyR58s				

			?	(R(ERÜRrRhRnthashlibRRtparamikoRt
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/home/tvault/.virtenv/lib/python2.7/site-packages/paramiko/sftp_server.pyt<module>s$("è

ÿ­