403Webshell
Server IP : 217.160.0.244  /  Your IP : 216.73.217.138
Web Server : Apache
System : Linux infong-eu155 4.4.400-icpu-108 #2 SMP Wed Feb 11 11:51:01 UTC 2026 x86_64
User : u100174116 ( 6746176)
PHP Version : 8.5.10
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /lib/python3/dist-packages/dulwich/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/dulwich/__pycache__/web.cpython-313.pyc
�

mEdg�I��z�SrSSKrSSKrSSKrSSKrSSKJr SSKJr SSK	J
r
JrJr SSK
Jr SSKJrJrJrJr SSKJr S	S
KJr S	SKJrJrJr S	SKJrJrJrJ r J!r! \RD"\#5r$S
r%Sr&Sr'Sr(/SQr)S7Sjr*S7S\\+S\,4Sjjr-S\,4Sjr.S\4Sjr/Sr0Sr1Sr2Sr3Sr4Sr5Sr6Sr7S r8"S!S"5r9"S#S$5r:S%r;"S&S'5r<"S(S)5r="S*S+5r>"S,S-5r?S.r@"S/S0\5rA"S1S2\5rB"S3S4\5rC\R�4S8S5jjrE\#S6:Xa\E"5 gg)9zDHTTP server for dulwich that implements the git smart HTTP protocol.�N)�Iterator)�BytesIO)�Callable�ClassVar�Optional)�parse_qs)�
ServerHandler�WSGIRequestHandler�
WSGIServer�make_server)�	log_utils�)�ReceivableProtocol)�BaseRepo�NotGitRepository�Repo)�DEFAULT_HANDLERS�Backend�DictBackend�generate_info_refs�generate_objects_info_packsz200 OKz
404 Not Foundz
403 Forbiddenz500 Internal Server Error))�ExpireszFri, 01 Jan 1980 00:00:00 GMT)�Pragmazno-cache)�
Cache-Controlz$no-cache, max-age=0, must-revalidatec�n�Uc[R"5nS[U54S[US-54S/$)N�Dateri�3�)rzpublic, max-age=31536000)�time�date_time_string)�nows �-/usr/lib/python3/dist-packages/dulwich/web.py�cache_forever_headersr!Es?��
�{��i�i�k��	�!�#�&�'�	�$�S�8�^�4�5�5����	timestamp�returnc��/SQn/SQnUc[R"5n[R"U5SSup4pVpxn	SXUX$UUUU4-$)N)�Mon�Tue�Wed�Thu�Fri�Sat�Sun)
N�Jan�Feb�Mar�Apr�May�Jun�Jul�Aug�Sep�Oct�Nov�Dec�z#%s, %02d %3s %4d %02d:%02d:%02d GMD)r�gmtime)
r#�weekdays�months�year�month�day�hh�mm�ss�wds
          r rrOsm��A�H��F����I�I�K�	�'+�{�{�9�'=�b�q�'A�$�D��"�"�0�����
��
�
�
�4��r"c�`�SURSUR5RS5-$)z�Extract the URL prefix from a regex match.

Args:
  mat: A regex match object.
Returns: The URL prefix, defined as the text before the match in the
    original string. Normalized to start with one leading slash and end
    with zero.
�/N)�string�start�strip)�mats r �
url_prefixrJts+������M�c�i�i�k�*�0�0��5�5�5r"c�6�UR[U55$)z>Get a Repo instance for the given backend and URL regex match.)�open_repositoryrJ)�backendrIs  r �get_reporN�s���"�"�:�c�?�3�3r"c#�8# �UcURS5v� gUR[U5 URS5nU(dOUv� MUR
5 g![a URS5v� N0f=f!UR
5 f=f7f)a	Send a file-like object to the request output.

Args:
  req: The HTTPGitRequest object to send output to.
  f: An open file-like object to send; will be closed.
  content_type: The MIME type for the file.
Returns: Iterator over the contents of the file, as chunks.
NzFile not foundi(zError reading file)�	not_found�respond�HTTP_OK�read�OSError�error�close)�req�f�content_type�datas    r �	send_filer[�s����	�y��m�m�,�-�-��
����G�\�*���6�6�%�=�D����J�	�	
���	���.��i�i�,�-�-�.��	
���	�s@�B�/A"�
B�A"�B�"B�?B�B�B�B�Bc�V�URS[RR5$)NrE)�replace�os�path�sep)�urls r �_url_to_pathrb�s���;�;�s�B�G�G�K�K�(�(r"c���UR5 [UR55n[R	SU5 [U[
X5RU5S5$)NzSending plain text file %s�
text/plain)�nocacherb�group�logger�infor[rN�get_named_file�rWrMrIr_s    r �
get_text_filerk�sI���K�K�M���	�	��$�D�
�K�K�,�d�3��S�(�7�0�?�?��E�|�T�Tr"c#��# �URS5URS5-RS5n[RSU5 [	X5R
nUR
U5(dURS5v� gXCR5nUR5 UR[S5 Uv� g![a URS5v� gf=f7f)Nr��asciizSending loose object %szObject not foundzError reading objectzapplication/x-git-loose-object)rf�encodergrhrN�object_store�contains_looserP�as_legacy_objectrTrU�
cache_foreverrQrR)rWrMrI�sharprZs      r �get_loose_objectru�s�����9�9�Q�<�#�)�)�A�,�&�
.�
.�w�
7�C�
�K�K�)�3�/��G�)�6�6�L��&�&�s�+�+��m�m�.�/�/���� �1�1�3�������K�K��9�:�
�J�����i�i�.�/�/���s*�BC+�C�+C+�C(�%C+�'C(�(C+c���UR5 [UR55n[R	SU5 [U[
X5RU5S5$)N�Sending pack file %sz application/x-git-packed-objects�rsrbrfrgrhr[rNrirjs    r �
get_pack_filery�sS��������	�	��$�D�
�K�K�&��-������-�-�d�3�*��r"c���UR5 [UR55n[R	SU5 [U[
X5RU5S5$)Nrwz$application/x-git-packed-objects-tocrxrjs    r �get_idx_filer{�sS��������	�	��$�D�
�K�K�&��-������-�-�d�3�.��r"c#�# �[URS5nURSS/5Sn[X5nU(GaUR(d�URRURS5S5nUcURS5v� gUR5 UR[SUS35n[[5R U5n	U"U[#U5/U	SSS	9n
U
R$R'S
URS5-S-5 U
R$R'S5 U
R)5 gUR5 UR[S5 [*R-S
5 [/U5Shv�N g![a&nUR[
U55v� SnAgSnAff=fN87f)N�QUERY_STRING�servicerrn�Unsupported service�application/x-z-advertisementT)�
stateless_rpc�advertise_refss
# service=�
rdzEmulating dumb info/refs)r�environ�getrNrrP�str�dumb�handlersro�	forbiddenrerQrRrrrSrJ�proto�write_pkt_line�handlergrhr)rWrMrI�paramsr~�repo�e�handler_cls�writer��handlers           r �
get_info_refsr��sy���
�c�k�k�.�1�
2�F��j�j��T�F�+�A�.�G����%���s�x�x��l�l�&�&�w�~�~�g�'>��E�����-�-� 5�6�6�����
����G�~�g�Y�n�%M�N��"�7�9�>�>�5�9����
��_�����
��	�
�
�$�$�]�W�^�^�G�5L�%L�u�%T�U��
�
�$�$�T�*�����	���
����G�\�*����.�/�%�d�+�+�+��7���m�m�C��F�#�#�����6	,�s:�/G�F�EG�G�G�
G�)G
�G�
G�Gc��UR5 UR[S5 [R	S5 [[
X55$)NrdzEmulating dumb info/packs)rerQrRrgrhrrN)rWrMrIs   r �get_info_packsr��s6���K�K�M��K�K���&�
�K�K�+�,�&�x��'=�>�>r"c#�# �UR5n[UR5S5nURUS-5nUS:XagUSSv� MN7f)N�rmr���)�readline�int�rstriprS)rX�line�length�chunks    r �_chunk_iterr��sR���
��z�z�|���T�[�[�]�B�'�����v��z�"���Q�;���C�R�j��
�s�AAc�$�\rSrSrSSjrSrSrg)�ChunkReaderiNc�2�[U5Ul/Ulg�N)r��_iter�_buffer)�selfrXs  r �__init__�ChunkReader.__init__s�� ��^��
�$&��r"c�z�[[[UR55U:aXURR	[UR55 [[[UR55U:aMXSRUR5nUSUnX!S/UlU$![a M9f=f)Nr")	�sum�map�lenr��append�nextr��
StopIteration�join)r��nrX�rets    r rS�ChunkReader.read	s����#�c�4�<�<�(�)�A�-�
����#�#�D����$4�5��#�c�4�<�<�(�)�A�-�

�H�H�T�\�\�"�����e���"��w����
��!�
��
�s�.B,�,
B:�9B:)r�r��r$N)�__name__�
__module__�__qualname__�__firstlineno__r�rS�__static_attributes__�r"r r�r�s��'�	r"r�c�,�\rSrSrSrSSjrSSjrSrg)	�_LengthLimitedFileiz�Wrapper class to limit the length of reads from a file-like object.

This is used to ensure EOF is read from the wsgi.input object once
Content-Length bytes are read. This behavior is required by the WSGI spec
but not implemented in wsgiref as of 2.5.
Nc��XlX lgr�)�_input�_bytes_avail)r��input�	max_bytess   r r��_LengthLimitedFile.__init__s
����%�r"c���URS::agUS:XdXR:�aURnU=RU-slURRU5$)Nrr"���)r�r�rS)r��sizes  r rS�_LengthLimitedFile.read!sV������!���2�:�� 1� 1�1��$�$�D����T�!���{�{����%�%r")r�r�r�)r�)r�r�r�r��__doc__r�rSr�r�r"r r�r�s���&�&r"r�c#��# �UR5RS5n[RSU5 URRUR
S5S5nUcURS5v� g[X5 UR5 UR[SUS35nURRS5S:Xa#[!URS	5R"nOURS	R"n[%Xv5nU"U['U5/US
S9n	U	R)5 g![a&nUR[U55v� SnAgSnAff=f7f)NrEzHandling service request for %srnrr�z-result�HTTP_TRANSFER_ENCODING�chunked�
wsgi.inputT)r�)rf�lstriprgrhr�r�ror�rNrrPr�rerQrRr�r�rSrrJr�)
rWrMrIr~r�r�r�rSr�r�s
          r �handle_service_requestr�,s*����i�i�k� � ��%�G�
�K�K�1�7�;��,�,�"�"�7�>�>�'�#:�D�A�K����m�m�1�2�2�������K�K�M��K�K��>�'��'�!B�C�E�
�{�{���/�0�I�=��3�;�;�|�4�5�:�:���{�{�<�(�-�-���t�+�E��'�J�s�O�#4�e�4�P�G��N�N������m�m�C��F�#�#����s1�A8E-�;D:�B4E-�:
E*�E%� E-�%E*�*E-c��\rSrSrSrSS\SS4SjjrSSjr\SS4S\	S	\
\	S
\
\\\	\	44Sjjr
S\	S\4S
jrS\	S\4SjrS\	S\4SjrSSjrSSjrSrg)�HTTPGitRequestiEzzClass encapsulating the state of a single git HTTP request.

Attributes:
  environ: the WSGI environment for the request.
Nr�r$c�P�XlX0lX@lX l/Ul/Ulgr�)r�r�r��_start_response�_cache_headers�_headers)r�r��start_responser�r�s     r r��HTTPGitRequest.__init__Ls(�����	� �
�-��57���/1��
r"c�<�URRX45 g)zAdd a header to the response.N)r�r�)r��name�values   r �
add_header�HTTPGitRequest.add_headerVs���
�
���d�]�+r"�statusrY�headersc��U(aURRU5 U(aURRSU45 URRUR5 UR	XR5$)z9Begin a response with the given status and other headers.zContent-Type)r��extendr�r�r�)r�r�rYr�s    r rQ�HTTPGitRequest.respondZs`����M�M� � ��)���M�M� � �.�,�!?�@��
�
���T�0�0�1��#�#�F�M�M�:�:r"�messagec��/Ul[RSU5 UR[S5 URS5$)z;Begin a HTTP 404 response and return the text of a message.z
Not found: %srdrn)r�rgrhrQ�HTTP_NOT_FOUNDro�r�r�s  r rP�HTTPGitRequest.not_foundi�5�� ������O�W�-����^�\�2��~�~�g�&�&r"c��/Ul[RSU5 UR[S5 URS5$)z;Begin a HTTP 403 response and return the text of a message.z
Forbidden: %srdrn)r�rgrhrQ�HTTP_FORBIDDENror�s  r r��HTTPGitRequest.forbiddenpr�r"c��/Ul[RSU5 UR[S5 URS5$)z;Begin a HTTP 500 response and return the text of a message.z	Error: %srdrn)r�rgrUrQ�
HTTP_ERRORror�s  r rU�HTTPGitRequest.errorws5�� ������[�'�*����Z��.��~�~�g�&�&r"c��[Ulg)z2Set the response to never be cached by the client.N)�NO_CACHE_HEADERSr��r�s r re�HTTPGitRequest.nocache~s
��.��r"c�"�[5Ulg)z4Set the response to be cached forever by the client.N)r!r�r�s r rs�HTTPGitRequest.cache_forever�s
��3�5��r")r�r�r�r�r�r�)FNr�)r�r�r�r�r��boolr�r�rRr�r�list�tuplerQ�bytesrPr�rUrersr�r�r"r r�r�Es����EI�2�-1�2�	
�2�,��&*�37�	
;��
;��s�m�
;��$�u�S�#�X��/�0�	
;�'��'��'�'��'��'�'�S�'�U�'�/�6r"r�c�.�\rSrSr%SrS\R"S54\S\R"S54\S\R"S54\S\R"S54\S\R"S54\	S\R"S	54\
S\R"S
54\S\R"S54\S\R"S
54\
S\R"S54\
0
r\\\\\R&4\\\\R./\\44\S'SS\SS4SjjrSrSrg)�HTTPGitApplicationi�z}Class encapsulating the state of a git WSGI application.

Attributes:
  backend: the Backend object backing this application
�GETz/HEAD$z/info/refs$z/objects/info/alternates$z/objects/info/http-alternates$z/objects/info/packs$z&/objects/([0-9a-f]{2})/([0-9a-f]{38})$z(/objects/pack/pack-([0-9a-f]{40})\.pack$z'/objects/pack/pack-([0-9a-f]{40})\.idx$�POSTz/git-upload-pack$z/git-receive-pack$�servicesNr�r$c��XlX l[[5UlX@lUbURR
U5 ggr�)rMr��dictrr��fallback_app�update)r�rMr�r�r�s     r r��HTTPGitApplication.__init__�s>�����	��-�.��
�(�����M�M� � ��*� r"c��USnUSn[XURURS9nSnURR	5H6upxXt:waMURU5n	U	(dM&URXx4n O Uc0URbUR
X5$URS5/$U"XPRW	5$)N�	PATH_INFO�REQUEST_METHOD)r�r�z#Sorry, that method is not supported)	r�r�r�r��keys�searchr�rPrM)
r�r�r�r_�methodrWr��smethod�spathrIs
          r �__call__�HTTPGitApplication.__call__�s����{�#���)�*����$�)�)�d�m�m�
����"�m�m�0�0�2�N�G�� ���,�,�t�$�C��s��-�-���7���
3��?�� � �,��(�(��A�A��
�
�&K�L�M�M��s�L�L�#�.�.r")rMr�r�r�)FNN)r�r�r�r�r��re�compilerkr�r�ruryr{r�r�rr�r�r��Patternrr�r�Matchrr��__annotations__r�r�rr�r�r"r r�r��sT���
��
�
�8�$�%�}�	��
�
�=�)�*�M�	��
�
�6�7�8�-�	��
�
�;�<�=�}�	��
�
�1�2�3�^���J�J�?�@�	
����J�J�B�C�	
����J�J�A�B�	
��	����/�0�1�3I�	����0�1�2�4J�'	�
�h���#�r�z�z�/�"��n�g�r�x�x�8�(�5�/�I�J�
L�	
���8HL�+�!�+�	
�+�/r"r�c�(�\rSrSrSrSSjrSrSrg)�GunzipFilteri�zcWSGI middleware that unzips gzip-encoded requests before
passing on to the underlying application.
Nc��Xlgr���app�r��applications  r r��GunzipFilter.__init__�����r"c��SSKnURSS5S:Xa#URSUSSS9US'US	SU;aUS	URX5$)	Nr�HTTP_CONTENT_ENCODING��gzipr��rb)�filename�fileobj�mode�CONTENT_LENGTH)rr��GzipFiler)r�r�r�rs    r r�GunzipFilter.__call__�sh����;�;�.��3�v�=�$(�M�M��w�|�'<�4�%2�%�G�L�!��/�0��7�*��,�-��x�x��0�0r"rr��r�r�r�r�r�r�rr�r�r"r rr�s����1r"rc�(�\rSrSrSrSSjrSrSrg)�LimitedInputFilteri�z_WSGI middleware that limits the input length of a request to that
specified in Content-Length.
Nc��Xlgr�rrs  r r��LimitedInputFilter.__init__�rr"c��URSS5nU(a[US[U55US'URX5$)Nr rr�)r�r�r�r)r�r�r��content_lengths    r r�LimitedInputFilter.__call__�sG��
!���%5�r�:���$6���%�s�>�':�%�G�L�!��x�x��0�0r"rr�r#r�r"r r%r%�s����
1r"r%c�D�[U0UD6n[[U55nU$)zhFactory function to create an instance of HTTPGitApplication,
correctly wrapped with needed middleware.
)r�r%r)�args�kwargsr�wrapped_apps    r �make_wsgi_chainr/�s(���d�
-�f�
-�C�$�\�#�%6�7�K��r"c�6�\rSrSrSrSSjrSSjrSSjrSrg)	�ServerHandlerLoggeriz@ServerHandler that uses dulwich's logger for logging exceptions.Nc�,�[RSUS9 g�Nz/Exception happened during processing of request)�exc_info�rg�	exception�r�r4s  r �
log_exception�!ServerHandlerLogger.log_exception������=��	�	
r"c�2�[R"U/UQ76 gr��rgrh�r��formatr,s   r �log_message�ServerHandlerLogger.log_message	������F�"�T�"r"c�*�[R"U6 gr��rgrU�r�r,s  r �	log_error�ServerHandlerLogger.log_error������d�r"r�r�)	r�r�r�r�r�r8r?rEr�r�r"r r1r1s��J�
�#�r"r1c�@�\rSrSrSrS	SjrS	SjrS	SjrS	SjrSr	g)
�WSGIRequestHandlerLoggerizEWSGIRequestHandler that uses dulwich's logger for logging exceptions.Nc�,�[RSUS9 gr3r5r7s  r r8�&WSGIRequestHandlerLogger.log_exceptionr:r"c�2�[R"U/UQ76 gr�r<r=s   r r?�$WSGIRequestHandlerLogger.log_messagerAr"c�*�[R"U6 gr�rCrDs  r rE�"WSGIRequestHandlerLogger.log_errorrGr"c�H�URR5UlUR5(dg[	URUR
UR
5UR55nXlURURR55 g)zHandle a single HTTP request.N)�rfiler��raw_requestline�
parse_requestr1�wfile�
get_stderr�get_environ�request_handler�run�server�get_app)r�r�s  r r��WSGIRequestHandlerLogger.handlesx��#�z�z�2�2�4����!�!�#�#��%��J�J��J�J��O�O������	
��#'�����D�K�K�'�'�)�*r")rRr�)
r�r�r�r�r�r8r?rEr�r�r�r"r rIrIs��O�
�#��
+r"rIc��\rSrSrSSjrSrg)�WSGIServerLoggeri/Nc�6�[RSU<35 g)zHandle an error.z5Exception happened during processing of request from Nr5)r��request�client_addresss   r �handle_error�WSGIServerLogger.handle_error0s�����C�N�CU�V�	
r"r�r�)r�r�r�r�rar�r�r"r r]r]/s��
r"r]c	�0�SSKnUR5nURSSSSSS9 URS	S
S[SS
S9 UR	U5up4[U5S:�aUSnO[R"5n[R"5 [S[U505n[U5n[URURU[ ["S9n[$R'SURUR5 UR)5 g)z,Entry point for starting an HTTP git server.rNz-lz--listen_address�listen_address�	localhostzBinding IP address.)�dest�default�helpz-pz--port�porti@zPort to listen on.)rf�typergrhrrE)�
handler_class�server_classz'Listening for HTTP connections on %s:%d)�optparse�OptionParser�
add_optionr��
parse_argsr�r^�getcwdr
�default_logging_configrrr/rrdrirIr]rgrh�
serve_forever)	�argvrm�parser�optionsr,�gitdirrMrrYs	         r �mainrx7s
���
�
"�
"�
$�F�
�����
��
"��������
�
��
!�
���%�%�d�+�M�G�
�4�y�1�}��a��������
�$�$�&��3��V��-�.�G�
�'�
"�C�
��������.�%��F��K�K�1��������
���r"�__main__r�r�)Fr�r^r
�sysr�collections.abcr�ior�typingrrr�urllib.parser�wsgiref.simple_serverr	r
rr�dulwichr
�protocolrr�rrrrYrrrrr�	getLoggerr�rgrRr�r�r�r�r!�floatr�rrJrNr[rbrkruryr{r�r�r�r�r�r�r�r�rr%r/r1rIr]rtrxr�r"r �<module>r�sn��.K�	�	�
��$��/�/�!����(�2�2���
�	�	�X�	&���� �� ��
(�
����"����"�3�"�J	6�s�	6�4�h�4�
�2)�U��"�� ,�F?����"&�&�.�2?6�?6�DB/�B/�J1�1�,1�1�*�
�-�
� +�1�+�>
�z�
��h�h�*�Z�z���F�r"

Youez - 2016 - github.com/yon3zu
LinuXploit