MOON
Server: Apache
System: Linux server30c.hostingraja.org 3.10.0-962.3.2.lve1.5.63.el7.x86_64 #1 SMP Fri Oct 8 12:03:35 UTC 2021 x86_64
User: jibhires (1887)
PHP: 8.1.30
Disabled: show_source, system, shell_exec, passthru, exec, popen, proc_open, allow_url_fopen, symlink, escapeshellcmd, pcntl_exec
Upload Files
File: //opt/alt/python37/lib64/python3.7/site-packages/aiohttp/__pycache__/http_parser.cpython-37.pyc
B

�k�aN�@s�UddlZddlZddlZddlZddlZddlZddlmZddlm	Z	ddl
mZmZm
Z
mZmZmZmZmZmZmZmZmZddlmZmZmZddlmZddlmZdd	lm Z dd
l!m"Z"m#Z#ddl$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+ddl,m-Z-m.Z.dd
l/m0Z0ddl1m2Z2m3Z3ddl4m5Z5m6Z6yddl7Z7dZ8Wne9k
�rTdZ8YnXdZ:e;ej<�Z=e5ee>e?d<e�@d�ZAe5ee>e?d<e�@d�ZBe5ee>e?d<e�@d�ZCe5eeDe?d<Gdd�de�ZEe�Fddddd d!d"d#d$d%g	�ZGed&eEeG�ZHGd'd(�d(e	�ZIGd)d*�d*e	�ZJGd+d,�d,�ZKGd-d.�d.ejLeeH�ZMGd/d0�d0eMeE�ZNGd1d2�d2eMeG�ZOGd3d4�d4�ZPGd5d6�d6�ZQeNZReOZSeEZTeGZUy2e"�s�dd7lVmNZNmOZOmEZEmGZGeNZWeOZXeEZYeGZZWne9k
�r�YnXdS)8�N)�suppress)�IntEnum)�Any�Generic�List�
NamedTuple�Optional�Pattern�Set�Tuple�Type�TypeVar�Union�cast)�CIMultiDict�CIMultiDictProxy�istr)�URL�)�hdrs)�BaseProtocol)�
NO_EXTENSIONS�BaseTimerContext)�BadHttpMessage�
BadStatusLine�ContentEncodingError�ContentLengthError�
InvalidHeader�LineTooLong�TransferEncodingError)�HttpVersion�
HttpVersion10)�internal_logger)�
EMPTY_PAYLOAD�StreamReader)�Final�
RawHeadersTF)�
HeadersParser�
HttpParser�HttpRequestParser�HttpResponseParser�RawRequestMessage�RawResponseMessage�ASCIISETz[!#$%&'*+\-.^_`|~0-9A-Za-z]+�METHREzHTTP/(\d+).(\d+)�VERSREs'[\x00-\x1F\x7F()<>@,;:\[\]={} \t\\\\\"]�HDRREc@sbeZdZUeed<eed<eed<ded<eed<eed<eeed<eed	<eed
<e	ed<dS)
r+�method�path�versionzCIMultiDictProxy[str]�headers�raw_headers�should_close�compression�upgrade�chunkedZurlN)
�__name__�
__module__�__qualname__�str�__annotations__r r&�boolrr�r@r@�F/opt/alt/python37/lib64/python3.7/site-packages/aiohttp/http_parser.pyr+Ks
r+r,r3�code�reasonr4r5r6r7r8r9�_MsgTc@seZdZdZdZdZdZdS)�
ParseStaterr��N)r:r;r<�
PARSE_NONE�PARSE_LENGTH�
PARSE_CHUNKED�PARSE_UNTIL_EOFr@r@r@rArEksrEc@s eZdZdZdZdZdZdZdS)�
ChunkStaterrrFrG�N)r:r;r<�PARSE_CHUNKED_SIZE�PARSE_CHUNKED_CHUNK�PARSE_CHUNKED_CHUNK_EOF�PARSE_MAYBE_TRAILERS�PARSE_TRAILERSr@r@r@rArLss
rLc@s>eZdZdeeedd�dd�Zeeedefd�d	d
�Z	dS)r'���N)�
max_line_size�max_headers�max_field_size�returncCs||_||_||_dS)N)rUrVrW)�selfrUrVrWr@r@rA�__init__|szHeadersParser.__init__zCIMultiDictProxy[str])�linesrXcCs�t�}g}d}|d}t|�}�x�|�r�y|�dd�\}}Wntk
rZt|�d�YnX|�d�}|��}t�|�r�t|��t|�|j	kr�t
d�|�dd��t
|j	�t
t|����t|�}	|d7}||}|o�|ddk}
|
�r||g}x�|
�rn|	t|�7}	|	|j	k�r.t
d	�|�dd��t
|j	�t
|	���|�|�|d7}||k�rf||}|�rl|ddk}
q�d
}Pq�Wd
�|�}n0|	|j	k�r�t
d	�|�dd��t
|j	�t
|	���|��}|�dd�}|�dd�}
|�||
�|�||f�q"Wt|�t|�fS)
Nr�:s 	zrequest header name {}�utf8�xmlcharrefreplacer)� �	zrequest header field {}�zutf-8�surrogateescape)r�len�split�
ValueErrorr�strip�lstripr0�searchrWr�format�decoder=�append�join�addr�tuple)rYr[r4r5Z	lines_idx�lineZ
line_countZbnameZbvalueZ
header_lengthZcontinuationZ
bvalue_lst�name�valuer@r@rA�
parse_headers�sn






zHeadersParser.parse_headers)rSrTrS)
r:r;r<�intrZr�bytesrr&rrr@r@r@rAr'{sr'c@seZdZdeeeejeeeeeeeeee	e
eeee
e
e
dd�dd	�Z
ejeeed
�dd��Zeed
�dd�Zddejejejfeeeee	eeeeeefe
efd�dd�Zeeedeee
ee	e
e
fd
�dd�Ze
dd�dd�ZdS)r(N����FT)�protocol�loop�limitrUrVrW�timerrBr1�readall�payload_exception�response_with_body�read_until_eof�auto_decompressrXcCs�||_||_||_||_||_||_||_|	|_|
|_||_	||_
|
|_g|_d|_
d|_d|_d|_||_||_t|||�|_dS)NraF)rxryrUrVrWr{rBr1r|r}r~r�_lines�_tail�	_upgradedZ_payload�_payload_parser�_auto_decompress�_limitr'�_headers_parser)rYrxryrzrUrVrWr{rBr1r|r}r~rr�r@r@rArZ�s(zHttpParser.__init__)r[rXcCsdS)Nr@)rYr[r@r@rA�
parse_messageszHttpParser.parse_message)rXc	Csp|jdk	r|j��d|_nP|jr0|j�|j�|jrl|jddkrP|j�d�tt��|�|j�SQRXdS)N���z
ra)r��feed_eofr�r�rkr�	Exceptionr�)rYr@r@rAr�s


zHttpParser.feed_eofs
ra)�data�SEP�EMPTY�CONTENT_LENGTH�METH_CONNECT�SEC_WEBSOCKET_KEY1rXcs�g}|jr|j|d}|_t|�}d}	|j}
�x6|	|k�rf|jdk�rx|j�sx|�||	�}||	krt|jst|d}	q2||	k�rb|j�||	|��|d}	|jd|k�rvz|�|j��Wd|j�	�Xt
td���fdd�}|�}
|�jkr�t
|���j|_t�d|j�}|jdk	�st�|
dk	�r2|
dk�sB�j�r��j�s�t|j|j|
|jd	�}t||
�j|�j|j|j|j|jd
�	}|j�sR||_n�||k�r�t�t��s�t�t|j|j|
|jd	�}d|_t|�j�jd|jd�|_nrt�d
d�dk�rN|
dk�rN|j �rNt|j|j|
|jd	�}t||
�j|�j|jd|j|jd
�	}|j�sR||_nt!}|��|f�n||	d�|_|}Pq2|jdk�r�|j�r�|j�r�t�Pq2|�rb|	|k�rb|j�r�t�|jdk	�s�t�y|j�"||	d��\}}Wn`t#k
�rD}z@|j$dk	�r|jj%�&|�$t'|���n|jj%�&|�d}d}Wdd}~XYnX|�rdd}	t|�}d|_q2q2Pq2W|�r�|	|k�r�||	d�}n|}||j|fS)NrarrFr�)rXcsV�j���}|dkrdSyt|�}Wntk
r@t���YnX|dkrRt���|S)Nr)r4�getrsrer)Z
length_hdr�length)r��msgr@rA�get_content_length?sz0HttpParser.feed_data.<locals>.get_content_lengthr1)r{ryrz)r�r9r1r7rBr|r~r�T)r1r7r|r�rB�d��)(r�rcryr�r��findr�rkr��clearrrsr4rr8�getattrr1rx�AssertionErrorr9r$r{r��HttpPayloadParserr7rBr|r~r��done�
isinstancer+rr#�	feed_data�
BaseExceptionr}�payload�
set_exceptionr=)rYr�r�r�r�r�r�ZmessagesZdata_lenZ	start_posry�posr�r�r1r�Zpayload_parser�eof�excr@)r�r�rAr�s�









zHttpParser.feed_datazCIMultiDictProxy[str]cCs�|j�|�\}}d}d}d}d}|�tj�}|r`|��}	|	dkrFd}n|	dkrTd}n|	dkr`d}|�tj�}
|
r�|
��}
|
dkr�|
}|�tj�}|dk	r�d|��kr�d}ntd	��tj	|kr�td
��||||||fS)z�Parses RFC 5322 headers from a stream.

        Line continuations are supported. Returns list of header name
        and value pairs. Header name is in upper case.
        NF�closeTz
keep-aliver8)�gzip�deflate�brr9z'Request has invalid `Transfer-Encoding`z6Content-Length can't be present with Transfer-Encoding)
r�rrr�rZ
CONNECTION�lowerZCONTENT_ENCODINGZTRANSFER_ENCODINGrr�)rYr[r4r5Z
close_conn�encodingr8r9Zconn�v�encZter@r@rArr�s8

zHttpParser.parse_headers)�valrXcCs
||_dS)zZSet connection upgraded (to websocket) mode.

        :param bool val: new state.
        N)r�)rYr�r@r@rA�set_upgraded�szHttpParser.set_upgraded)NNrurvrwrvNNNFNTFT) r:r;r<rr�asyncioZAbstractEventLooprsrr=r?rr�rZ�abc�abstractmethodrrtrDr�r�rr�r�r�rrr$r�r&rrr�r@r@r@rAr(�s:<$.$.r(c@s$eZdZdZeeed�dd�ZdS)r)z�Read request status line.

    Exception .http_exceptions.BadStatusLine
    could be raised in case of any errors in status line.
    Returns RawRequestMessage.
    )r[rXcCs\|d�dd�}y|�dd�\}}}Wntk
rDt|�d�YnXt|�|jkrntdt|j�tt|����|�d�\}}}|�d�\}}	}
t	�
|�s�t|��yB|�d�r�|d	d��d
d�\}}tt
|�t
|��}
nt|��Wntk
r�t|��YnX|�|�\}}}}}}|dk�r4|
tk�r0d}nd
}t|||
||||||tj||
|dd��
S)Nrzutf-8rbrFzStatus line is too long�#�?zHTTP/��.rTF)r2Zquery_stringZfragmentZencoded)rjrdrerrcrUrr=�	partitionr.�match�
startswithr rsr�rrr!r+rZbuild)rYr[ror1r2r3Z	path_partZ_hash_separatorZurl_fragmentZ_question_mark_separatorZqs_partZn1Zn2�	version_or4r5r�r7r8r9r@r@rAr�
sN




zHttpRequestParser.parse_messageN)r:r;r<�__doc__rrtr+r�r@r@r@rAr)sr)c@s$eZdZdZeeed�dd�ZdS)r*z�Read response status line and headers.

    BadStatusLine could be raised in case of any errors in status line.
    Returns RawResponseMessage.
    )r[rXc
CsT|d�dd�}y|�dd�\}}Wntk
rBt|�d�YnXy|�dd�\}}Wntk
rpd}YnXt|�|jkr�tdt|j�tt|����t�	|�}|dkr�t|��t
t|�d��t|�d���}yt|�}Wntk
r�t|�d�YnX|dk�rt|��|�
|�\}	}
}}}
}|dk�r8|tk}t|||��|	|
|||
|�	S)	Nrzutf-8rbr�zStatus line is too longrFi�)rjrdrerrcrUrr=r/r�r rs�grouprrr!r,rf)rYr[ror3ZstatusrCr�r�Zstatus_ir4r5r�r7r8r9r@r@rAr�VsF




z HttpResponseParser.parse_messageN)r:r;r<r�rrtr,r�r@r@r@rAr*Osr*c@sjeZdZdeeeeeeeeeeeeedd�
dd�Zdd�dd	�Z	de
e
e
eee
fd�d
d�ZdS)r�NFT)
r�r�r9r7rBr1r|r~r�rXc
Cs�d|_tj|_tj|_d|_d|_|	|_	d|_
|rH|rH|j	rHt||�}
n|}
|shtj|_|
��d|_
n||rvtj
|_nn|dk	r�tj|_||_|jdkr�|
��d|_
n>|r�|dkr�tj|_n(|dkr�t�d�tj|_|
��d|_
|
|_dS)NrraFT��)ZPUTZPOSTz6Content-Length or Transfer-Encoding header is required)�_lengthrErH�_typerLrN�_chunk�_chunk_size�_chunk_tailr�r��
DeflateBufferr�rJrIrKr"Zwarningr�)rYr�r�r9r7rBr1r|r~r�Zreal_payloadr@r@rArZ�s@



zHttpPayloadParser.__init__)rXcCsF|jtjkr|j��n*|jtjkr.td��n|jtjkrBtd��dS)Nz2Not enough data for satisfy content length header.z3Not enough data for satisfy transfer length header.)	r�rErKr�r�rIrrJr)rYr@r@rAr��szHttpPayloadParser.feed_eof�
�;)�chunkr��	CHUNK_EXTrXcCsB|jtjkr�|j}t|�}||krT|||_|j�||�|jdkr�|j��dSn6d|_|j�|d|�|�|j��d||d�fS�n�|jtjk�r|j	r�|j	|}d|_	�x�|�r|j
tjk�r�|�
|�}|dk�r�|�
|d|�}|dk�r|d|�}n|d|�}ytt|�d�}	Wn@tk
�rbt|d|��dd��}
|j�|
�|
d�YnX||dd�}|	dk�r�tj|_
ntj|_
|	|_|j��n
||_	d	S|j
tjk�r(|j}t|�}||k�r�|||_|j�||�d	Sd|_|j�|d|�|�||d�}tj|_
|j��|j
tjk�rh|dd�|k�r^|dd�}tj|_
n
||_	d	S|j
tjk�r�|dd�}||k�r�|j��d|dd�fS|�s�d	S||dd
�k�r�||_	d	Stj|_
|j
tjkr�|�
|�}|dk�r||dd�}tj|_
q�||_	d	Sq�Wn |jtjk�r>|j�|t|��d	S)Nr)TraTra��asciirbrF)Frar)r�rErIr�rcr�r�r�rJr�r�rLrNr�rsrtrerrjr�rQrOr��begin_http_chunk_receivingrP�end_http_chunk_receivingrRrK)rYr�r�r�ZrequiredZ	chunk_lenr��iZsize_b�sizer��headr@r@rAr��s�




















zHttpPayloadParser.feed_data)NFNNNFTT)r�r�)
r:r;r<r$rrsr?r=rZr�rtrr�r@r@r@rAr��s$-
r�c@s|eZdZUdZeed<eeedd�dd�Z	e
dd�dd	�Zee
dd
�dd�Zdd
�dd�Zdd
�dd�Zdd
�dd�ZdS)r�zDDeflateStream decompress stream and feed data into specified stream.�decompressorN)�outr�rXcCsn||_d|_||_d|_|dkrDts,td��Gdd�d�}|�|_n&|dkrVdtjntj}tj	|d	�|_dS)
NrFr�zECan not decode content-encoding: brotli (br). Please install `Brotli`c@s8eZdZdd�dd�Zeed�dd�Zed�dd	�ZdS)
z-DeflateBuffer.__init__.<locals>.BrotliDecoderN)rXcSst��|_dS)N)�brotliZDecompressor�_obj)rYr@r@rArZesz6DeflateBuffer.__init__.<locals>.BrotliDecoder.__init__)r�rXcSs0t|jd�rtt|j�|��Stt|j�|��S)N�
decompress)�hasattrr�rrtr�Zprocess)rYr�r@r@rAr�hsz8DeflateBuffer.__init__.<locals>.BrotliDecoder.decompresscSs t|jd�rtt|j���SdS)N�flushra)r�r�rrtr�)rYr@r@rAr�msz3DeflateBuffer.__init__.<locals>.BrotliDecoder.flush)r:r;r<rZrtr�r�r@r@r@rA�
BrotliDecoderasr�r�r�)�wbits)
r�r�r��_started_decoding�
HAS_BROTLIrr��zlib�	MAX_WBITS�
decompressobj)rYr�r�r�Z	zlib_moder@r@rArZTs
zDeflateBuffer.__init__)r�rXcCs|j�|�dS)N)r�r�)rYr�r@r@rAr�wszDeflateBuffer.set_exception)r�r�rXcCs�|sdS|j|7_|jsH|jdkrH|dd@dkrHtjtjd�|_y|j�|�}Wn"tk
rzt	d|j��YnXd|_|r�|j
�|t|��dS)Nr�r��)r�z#Can not decode content-encoding: %sT)
r�r�r�r�r�r�r�r�r�rr�r�rc)rYr�r�r@r@rAr�zs
zDeflateBuffer.feed_data)rXcCsR|j��}|s|jdkrD|j�|t|��|jdkrD|jjsDtd��|j�	�dS)Nrr�)
r�r�r�r�r�rcr�r�rr�)rYr�r@r@rAr��s
zDeflateBuffer.feed_eofcCs|j��dS)N)r�r�)rYr@r@rAr��sz(DeflateBuffer.begin_http_chunk_receivingcCs|j��dS)N)r�r�)rYr@r@rAr��sz&DeflateBuffer.end_http_chunk_receiving)r:r;r<r�rr>r$rr=rZr�r�rtrsr�r�r�r�r@r@r@rAr�Os
#
r�)r)r*r+r,)[r�r��collections�re�stringr��
contextlibr�enumr�typingrrrrrr	r
rrr
rrZ	multidictrrrZyarlrr�rZ
base_protocolrZhelpersrrZhttp_exceptionsrrrrrrrZhttp_writerr r!�logr"Zstreamsr#r$Ztypedefsr%r&r�r��ImportError�__all__�setZ	printabler-r=r>�compiler.r/r0rtr+�
namedtupler,rDrErLr'�ABCr(r)r*r�r�ZHttpRequestParserPyZHttpResponseParserPyZRawRequestMessagePyZRawResponseMessagePyZ_http_parserZHttpRequestParserCZHttpResponseParserCZRawRequestMessageCZRawResponseMessageCr@r@r@rA�<module>s�8$	
	
^+MA@Z