403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /lib64/python3.9/site-packages/hgext/remotefilelog/__pycache__/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /lib64/python3.9/site-packages/hgext/remotefilelog/__pycache__/remotefilelogserver.cpython-39.pyc
a

�+�b�8�@s�ddlmZddlZddlZddlZddlZddlZddlmZddl	m
Z
mZddlm
Z
ddlmZmZmZmZmZmZmZmZmZmZmZmZmZmZddlmZmZej Z!d	d
�Z"da#dd
�Z$dd�Z%dd�Z&dd�Z'dd�Z(dd�Z)dd�Z*dS)�)�absolute_importN)�_)�bin�hex)�open)�changegroup�	changelog�context�error�
extensions�match�pycompat�scmutil�store�streamclone�util�wireprotoserver�wireprototypes�wireprotov1server�)�	constants�shallowutilcs(t|��fdd�}t�tjd|�dS)zGSets up a normal Mercurial repo so it can serve files to shallow repos.cs�|jpg}tj|vr�d}	d}
|jp$gD]F}|�d�rL|td�d��d�}	q&|�d�r&|td�d��d�}
q&t���|	s~|
r�t��jdd|	|
��t	�fdd�|D��}||||||g|�Ri|��S)Nsincludepattern=�sexcludepattern=�csg|]}�|�s|�qS�r��.0�f��mr�M/usr/lib64/python3.9/site-packages/hgext/remotefilelog/remotefilelogserver.py�
<listcomp>Crz6setupserver.<locals>.generatefiles.<locals>.<listcomp>)
Z_bundlecapsrZBUNDLE2_CAPABLITY�
startswith�len�splitr�always�root�list)�orig�selfZchangedfilesZ	linknodesZ
commonrevs�source�args�kwargs�caps�includepattern�excludepatternZcap��reporr �
generatefiles/s,



�
���z"setupserver.<locals>.generatefiless
generatefilesN)�onetimesetupr�wrapfunctionrZcgpacker)�uir1r2rr0r �setupserver*s
�r6Fcs�trdSdatjdddd�t�tjdddd�t�tjd	d
dd�t�Gdd�dt�}|���fd
d�}|dftjd<d�fdd�	}t�	t
d|��fdd�}t�	td|�dd�}t�	tjd|�dd�}t�	t
d|�dS)z9Configures the wireprotocol for both clients and servers.NT�x_rfl_getflogheadsspathspull)Z
permission�x_rfl_getfilesr�
x_rfl_getfiles	file nodec@seZdZdZdZdZdS)z!onetimesetup.<locals>.streamstateNF)�__name__�
__module__�__qualname__r�
shallowremote�noflatmfrrrr �streamstatebsr?c
s�d}d}|�d�}|r |�d�}|�d�}|r8|�d�}�j}�j}�j}z�d�_t���_|�d�dk�_|st|r�t�|jdd||��_t�||��t	�j
��t	�j
�����fdd	�}	t�|	��W|�_|�_|�_S|�_|�_|�_0dS)
NsincludepatternrsexcludepatternTsnoflatmanifestsTruerc3s"�V�V�jD]
}|VqdS�N)�gen)�value��first�second�	streamresrr rA�s
z5onetimesetup.<locals>.stream_out_shallow.<locals>.gen)
�getr$r=rr>r%r&r�stream�nextrArrF)
r1�proto�otherr.r/�rawZ
oldshallowZoldmatchZoldnoflatmfrA��staterCr �stream_out_shallowisD




�

��z(onetimesetup.<locals>.stream_out_shallow�*sstream_out_shallowc3s��j�r�t�|�r�t|jj�d}|jjj}tj�	|jjd�g}|r�|�
�}||dd�D]x\}}}	|d|}
|tjkr�|
�
d�s�|
�
d�s�t�|
|d��}t�|�}tj}
|
||	jfV|tjkrX|�|
�qXq@t�|��r"|j��D]6\}
}}|�d�r�|�
d��s|�
d�r�|
||fVq�j}|�rt|���st|j��D]0\}
}}|d	d
�}��|��sB|
||fV�qB|j��D].}�j�r�|ddd�dk�r��q~|V�q~n4t�|��r�t�td
���n|||�D]}|V�q�dS)NrsdataT)�stat�/s.is.dsmeta/�����s00manifest.s0Cannot clone from a shallow repo to a full repo.) r=r�	isenabledr#r�pathZrawvfs�readdir�os�join�poprQ�S_IFREG�endswithrZpconvertZ	decodedirZFILETYPE_OTHER�st_size�S_IFDIR�appendrZistreemanifestZ	datafilesr"rr%Ztopfilesr>r
�Abortr)r(r1ZmatcherZstriplenrXZvisit�pr�kind�st�fp�n�d�t�u�sr�xrMrr �_walkstreamfiles�sV


�


���z&onetimesetup.<locals>._walkstreamfiless_walkstreamfilescsN|||�}t�|�s ��dd�rJt|t�r6|�tj�|�d�|�d�|S)N�
remotefilelog�serverr7r9)rrV�
configbool�
isinstance�_sshv1serverr`rZNETWORK_CAP_LEGACY_SSH_GETFILES)r(r1rJr-)r5rr �
_capabilities�s
�


z#onetimesetup.<locals>._capabilitiess
_capabilitiesc_sD|j}t�|d�r.|jr.|j�|j�|j��S||g|�Ri|��S)Nsforcelinkrev)�_reporZsafehasattr�forcelinkrevZ_filelogZlinkrevZrevZ	_filenode)r(r)r+r,r1rrr �_adjustlinkrev�sz$onetimesetup.<locals>._adjustlinkrevs_adjustlinkrevcSs|dkrdS||�S)Nr8Fr)r(�cmdrrr �_iscmd�szonetimesetup.<locals>._iscmdsiscmd)N)�onetimerZwireprotocommand�getflogheads�getfiles�getfile�objectZcommandsrr4rr	Zbasefilectxr)r5r?rOrlrrrurwr)rNr5r r3PsD������)�
5�r3c
Cs�tj�||t|��}tj�|�r2tj�|�dk�rZ|j||d�}|��|jkrjt	�	|j
�|_	|j||d�}t|�}t�
|�}t�d�}z�tj�|�}tj�|�s�zt�|�Wn2ty�}	z|	jtjkr̂WYd}	~	n
d}	~	00d}
zFzt�|d�}
|
�|�Wnttf�yYn0W|
�r>|
��n|
�r<|
��0Wt�|�nt�|�0n4t|d��}
|
��}Wd�n1�s�0Y|S)Nr)Zfileid�swbsrb)rYrWrZr�exists�getsize�filectx�node�nullidrZsvfs�createfileblob�zlib�compress�umask�dirname�makedirs�OSError�errnoZEEXISTrZatomictempfile�write�IOError�closer�read)r1�	cachepathrWr��
filecachepathr��textZoldumaskr��exrrrr �
_loadfileblob�s>


�(r�cs*��|�}|��}d��fdd�|D��S)z-A server api for requesting a filelog's heads�
c3s |]}|�jkrt|�VqdSr@)r�r)r�headr0rr �	<genexpr>rzgetflogheads.<locals>.<genexpr>)�file�headsrZ)r1rJrW�flogr�rr0r rys
rycCsdt�|�rdtd�S|j�dd�}|s8tj�|jd�}t|�	��}||j
krRdSdt||||�S)afA server api for requesting a particular version of a file. Can be used
    in batches to request many files at once. The return protocol is:
    <errorcode><data/errormsg> where <errorcode> is 0 for success or
    non-zero for an error.

    data is a compressed blob with revlog flag and ancestors information. See
    createfileblob for its content.
    s1�+cannot fetch remote files from shallow reporm�servercachepath�remotefilelogcaches0)rrVrr5�configrYrWrZr�stripr�r�)r1rJr�r�r�rrr r{"s	

r{csJt���rt�td���t�t�s0t�td�����fdd�}t�|��S)zDA server api for requesting particular versions of particular files.r�s/cannot fetch remote files over non-ssh protocolc3s��j}�j�dd�}|s(tj��jd�}|��dd�}|s>q�t|dd��}|�jkr`dVq(|dd�}t	�|||�}dt
|�|fV�j��q(dS)Nrmr�r�����(s0
s%d
%s)
Z_finr5r�rYrWrZ�readlinerr�r�r#Z_fout�flush)Zfinr�Zrequestr�rWr��rJr1rr �streamer=s
zgetfiles.<locals>.streamer)	rrVr
rarrprqrrF)r1rJr�rr�r rz6s

rzcCs |��}|��}|j�|�}|dkr.|��}n
|�|�}|j}|g}z�d|_|�dd�|�	�D��d}|D]�}|�
�}	|j}
|j}t|	�dkr�|	d�
�}
t|	�dkr�|	d�
�}d}|��}
|
r�|
d}|��}|d|�
�|
|||f7}qlWd|_nd|_0t�t|�|�}d	|||fS)
a�
    format:
        v0:
            str(len(rawtext)) + '' + rawtext + ancestortext
        v1:
            'v1' + '
' + metalist + '' + rawtext + ancestortext
            metalist := metalist + '
' + meta | meta
            meta := sizemeta | flagmeta
            sizemeta := METAKEYSIZE + str(len(rawtext))
            flagmeta := METAKEYFLAG + str(flag)

            note: sizemeta must exist. METAKEYFLAG and METAKEYSIZE must have a
            length of 1.
    rTcSsg|]}|�qSrrrrrr r!zrz"createfileblob.<locals>.<listcomp>rrs%s%s%s%s%sFs%s%s%s)ZfilelogZfilerevZ_revlog�flags�dataZrawdatarsrt�extend�	ancestors�parentsr�r#�filenodeZrenamedr�rZbuildfileblobheader)r�r�ZfrevZrevlogflagsr�r1r�ZancestortextZancestorctxr�Zp1Zp2Zcopyname�renameZlinknode�headerrrr r�[sF

�r�cCs"|j�dd�sdSt�}|�d�}|j�d�}|D]B}||��}t�|�D]&\}}t	j
�||t|��}	|�|	�qLq2|j�
dd�}
t��|
ddd}|jtd�d	d
�}|�d�t	�|�D]R\}
}}|D]B}t	j
�|
|�}|��||vr�q�t	�|�}|j|kr�t	�|�q�q�|��dS)Nrmrnsheads(tip~25000:) - nullr�sserverexpiration��<sremoving old server cachesfiles)Zunitr)r5ro�setZrevsZvfsrZZmanifestr
Z	iteritemsrYrWr�addZ	configint�timeZmakeprogressr�update�walkZ	incrementrQ�st_mtime�removeZcomplete)r5r1Zneededfilesr�r�r�Zmf�filenamer�r�ZdaysZ
expirationZprogressr&�dirs�filesr��filepathrQrrr �gcserver�s0



r�)+Z
__future__rr�rYrQr�r�Zmercurial.i18nrZmercurial.noderrZmercurial.pycompatrZ	mercurialrrr	r
rrr
rrrrrrr�rrZsshv1protocolhandlerrqr6rxr3r�ryr{rzr�r�rrrr �<module>s*@#"*%?

Youez - 2016 - github.com/yon3zu
LinuXploit