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_websocket.cpython-37.pyc
B

�k�ac�@sUdZddlZddlZddlZddlZddlZddlZddlZddlm	Z	ddl
mZddlm
Z
mZmZmZmZmZmZmZmZddlmZddlmZdd	lmZdd
lmZdZGdd
�d
e	�Zdd�eD�Z eee!e"d<Gdd�de	�Z#dZ$ee%e"d<ed�j&Z'ed�j&Z(ed�j)Z*ed�j+Z,ed�j+Z-ed�j+Z.ed�j+Z/dZ0ee!e"d<dZ1ee!e"d<e�2ddd d!g�Z3Gd"d#�d#e3�Z4e4e#j5dd�Z6e4e#j7dd�Z8Gd$d%�d%e9�Z:Gd&d'�d'e9�Z;ej<Z=ee>e"d(<d)d*�e?d+�D�Z@eee%e"d,<e%eAdd-�d.d/�ZBe�reBZCn0ydd0lDmEZEeEZCWneFk
�rHeBZCYnXe%ddd1d1g�ZGee%e"d2<e�Hd3�ZIeee>e"d4<e�Hd5�ZJeee>e"d6<dEee>eKee!eKfd8�d9d:�ZLdFe!eKeKe>d<�d=d>�ZMGd?d@�d@e	�ZNGdAdB�dB�ZOGdCdD�dD�ZPdS)Gz%WebSocket protocol versions 13 and 8.�N)�IntEnum)�Struct)	�Any�Callable�List�Optional�Pattern�Set�Tuple�Union�cast�)�BaseProtocol)�
NO_EXTENSIONS)�	DataQueue)�Final)	�WS_CLOSED_MESSAGE�WS_CLOSING_MESSAGE�WS_KEY�WebSocketReader�WebSocketWriter�	WSMessage�WebSocketError�	WSMsgType�WSCloseCodec@s@eZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdS)ri�i�i�i�i�i�i�i�i�i�i�i�i�N)�__name__�
__module__�__qualname__ZOKZ
GOING_AWAY�PROTOCOL_ERRORZUNSUPPORTED_DATAZABNORMAL_CLOSURE�INVALID_TEXTZPOLICY_VIOLATION�MESSAGE_TOO_BIGZMANDATORY_EXTENSIONZINTERNAL_ERRORZSERVICE_RESTARTZTRY_AGAIN_LATERZBAD_GATEWAY�r!r!�I/opt/alt/python37/lib64/python3.7/site-packages/aiohttp/http_websocket.pyr srcCsh|]}t|��qSr!)�int)�.0�ir!r!r"�	<setcomp>0sr&�ALLOWED_CLOSE_CODESc@sPeZdZdZdZdZdZdZdZdZ	dZ
d	ZeZeZ
eZeZeZe	Ze
ZeZd
S)rrr
��	�
��iiN)rrr�CONTINUATION�TEXT�BINARY�PING�PONG�CLOSE�CLOSING�CLOSEDZERROR�text�binary�ping�pong�close�closing�closed�errorr!r!r!r"r3s"rs$258EAFA5-E914-47DA-95CA-C5AB0DC85B11rz!Hz!Qz!BBz!BBHz!BBQi@�MSG_SIZEi�
DEFAULT_LIMIT�_WSMessageBase�type�dataZextrac@s.eZdZejd�eegefed�dd�ZdS)r)�loads)rB�returncCs
||j�S)zAReturn parsed JSON data.

        .. versionadded:: 0.22
        )rA)�selfrBr!r!r"�json]szWSMessage.jsonN)rrrrErBrrr!r!r!r"r\srcs8eZdZdZeedd��fdd�Zed�dd�Z�ZS)	rz WebSocket protocol parser error.N)�code�messagerCcs||_t��||�dS)N)rF�super�__init__)rDrFrG)�	__class__r!r"rIlszWebSocketError.__init__)rCcCstt|jd�S)Nr
)r�str�args)rDr!r!r"�__str__pszWebSocketError.__str__)	rrr�__doc__r#rKrIrM�
__classcell__r!r!)rJr"risrc@seZdZdZdS)�WSHandshakeErrorz#WebSocket protocol handshake error.N)rrrrNr!r!r!r"rPtsrP�native_byteordercs&g|]�t�fdd�td�D���qS)c3s|]}|�AVqdS)Nr!)r$�a)�br!r"�	<genexpr>|sz<listcomp>.<genexpr>r,)�bytes�range)r$r!)rSr"�
<listcomp>|srWr,�
_XOR_TABLE)�maskrArCcCs�t|t�st|��t|�dks&t|��|r�dd�|D�\}}}}|ddd��|�|ddd�<|ddd��|�|ddd�<|ddd��|�|ddd�<|ddd��|�|ddd�<dS)awWebsocket masking function.

    `mask` is a `bytes` object of length 4; `data` is a `bytearray`
    object of any length. The contents of `data` are masked with `mask`,
    as specified in section 5.3 of RFC 6455.

    Note that this function mutates the `data` argument.

    This pure-python implementation may be replaced by an optimized
    version when available.

    �css|]}t|VqdS)N)rX)r$�nr!r!r"rT�sz)_websocket_mask_python.<locals>.<genexpr>Nr
r(�)�
isinstance�	bytearray�AssertionError�len�	translate)rYrArRrS�c�dr!r!r"�_websocket_mask_pythons
rd)�_websocket_mask_cython��_WS_DEFLATE_TRAILINGz�^(?:;\s*(?:(server_no_context_takeover)|(client_no_context_takeover)|(server_max_window_bits(?:=(\d+))?)|(client_max_window_bits(?:=(\d+))?)))*$�
_WS_EXT_REzpermessage-deflate([^,]+)?�_WS_EXT_RE_SPLITF)�extstr�isserverrCcCs�|sdSd}d}x�t�|�D]�}|�d�}|s4d}Pt�|�}|r�d}|r�|�d�rxt|�d��}|dksr|dkrxd}q|�d�r�d}Pq�|�d	�r�t|�d	��}|dks�|dkr�td
��|�d�r�d}Pq|std|�d���qW||fS)
N)rFrFr
�rZr)T�zInvalid window sizer(z#Extension for deflate not supported)ri�finditer�grouprh�matchr#rP)rjrk�compress�
notakeoverZextZdefextrpr!r!r"�ws_ext_parse�s>





rsrl)rqrk�server_notakeoverrCcCs^|dks|dkrtd��dg}|s,|�d�|dkrF|�dt|��|rT|�d�d�|�S)	Nr)rlzCCompress wbits must between 9 and 15, zlib does not support wbits=8zpermessage-deflateZclient_max_window_bitszserver_max_window_bits=Zserver_no_context_takeoverz; )�
ValueError�appendrK�join)rqrkrtZ
enabledextr!r!r"�
ws_ext_gen�s

rxc@seZdZdZdZdZdZdS)�
WSParserStater
r(r\rZN)rrr�READ_HEADER�READ_PAYLOAD_LENGTH�READ_PAYLOAD_MASK�READ_PAYLOADr!r!r!r"ry�sryc@s�eZdZdeeeedd�dd�Zdd�dd�Ze	e
ee	fd	�d
d�Ze	e
ee	fd	�dd
�Ze	e
e
eeeeeefd�dd�ZdS)rTN)�queue�max_msg_sizerqrCcCsp||_||_d|_t�|_tj|_d|_d|_	d|_
t�|_d|_d|_
d|_d|_d|_d|_d|_||_dS)NF�r)r~�
_max_msg_size�_excr^�_partialryrz�_state�_opcode�
_frame_fin�
_frame_opcode�_frame_payload�_tail�	_has_mask�_frame_mask�_payload_length�_payload_length_flag�_compressed�_decompressobj�	_compress)rDr~rrqr!r!r"rIs"zWebSocketReader.__init__)rCcCs|j��dS)N)r~�feed_eof)rDr!r!r"r�szWebSocketReader.feed_eof)rArCc
CsR|jrd|fSy
|�|�Stk
rL}z||_|j�|�dSd}~XYnXdS)NT)Tr�)r��
_feed_data�	Exceptionr~Z
set_exception)rDrA�excr!r!r"�	feed_datas
zWebSocketReader.feed_datac
Cs��x�|�|�D�]x\}}}}|r8|js8tjtjd�|_|tjk�r"t|�dkr�t|dd��d}|dkr�|t	kr�t
tjd|����y|dd��
d�}Wn0tk
r�}zt
tjd�|�Wdd}~XYnXttj||�}	n4|�rt
tjd|�d	|�d	|����nttjdd
�}	|j�|	d�q|tjk�rL|j�ttj|d
�t|��q|tjk�rv|j�ttj|d
�t|��q|tjtjfk�r�|jdk�r�t
tjd|����q|�s|tjk�r�||_|j�|�|j�r�t|j�|jk�r�t
tjd�t|j�|j���q|j�r*|tjk�r*t
tjd
�|���|tjk�rR|jdk	�sFt�|j}d|_|j�|�|j�r�t|j�|jk�r�t
tjd�t|j�|j���|�r�|j�t�|j� |j|j�}
|jj!�r�t|jj!�}t
tjd�|j||j���n
t"|j�}
|j�#�|tjk�rly*|
�
d�}|j�ttj|d
�t|��Wn2tk
�rh}zt
tjd�|�Wdd}~XYnXq|j�ttj|
d
�t|
��qWdS)N)�wbitsr(ri�zInvalid close code: zutf-8zInvalid UTF-8 text messagezInvalid close frame: � �zUnexpected opcode=z Message size {} exceeds limit {}z<The opcode in non-fin frame is expected to be zero, got {!r}z-Decompressed message size {} exceeds limit {})Fr�)$�parse_framer��zlibZ
decompressobjZ	MAX_WBITSrr2r`�UNPACK_CLOSE_CODEr'rrr�decode�UnicodeDecodeErrorrrr~r�r0r1r.r/r�r-r��extendr�r �formatr_rgZ
decompressZunconsumed_tailrU�clear)
rDrA�fin�opcode�payloadZ
compressedZ
close_codeZ
close_messager��msgZpayload_merged�leftr5r!r!r"r�&s�




zWebSocketReader._feed_data)�bufrCcCs�g}|jr|j|d}|_d}t|�}�xD|jtjk�rr||dk�rp|||d�}|d7}|\}}|d?d@}|d?d@}	|d?d@}
|d?d@}|d	@}|
s�|s�|	r�|js�ttjd
��|dkr�|dkr�ttjd��|d?d@}
|d@}|dk�r|d
k�rttjd��|j	�s"|j
dk�r4|	�r,dnd|_
n|	�rFttjd
��t|�|_	||_t|
�|_
||_tj|_nP|jtjk�r^|j}|dk�r�||dk�r�|||d�}|d7}t|�d}||_|j
�r�tjntj|_nPnz|dk�rB||dk�r>|||d�}|d7}t|�d}||_|j
�r4tjntj|_nPn||_|j
�rVtjntj|_|jtjk�r�||dk�r�|||d�|_|d7}tj|_nP|jtjkr,|j}|j}||}||k�r�|||_|�||d��|}n$d|_|�||||��||}|jdk�rj|j
�r@|jdk	�s4t�t|j|�|�|j	|j||j
f�t�|_tj|_q,Pq,W||d�|_|S)z&Return the next frame from the socket.r�rr(�r
rm�rZrlz*Received frame with non-zero reserved bitsz!Received fragmented control frame��}z5Control frame payload cannot be larger than 125 bytesNTF�~r+)r�r`r�ryrzr�rrrr�r��boolr�r�r�r{�UNPACK_LEN2r�r|r}�UNPACK_LEN3r�r�r�r_�_websocket_maskrvr^)rDr�ZframesZ	start_posZ
buf_lengthrAZ
first_byteZsecond_byter�Zrsv1Zrsv2Zrsv3r�Zhas_mask�lengthr�Z	chunk_lenr!r!r"r��s�










zWebSocketReader.parse_frame)T)rrrrrr#r�rIr�rUr
r�r�rrr^r�r!r!r!r"r�s|rc
@s�eZdZdee��ddd�eeje	e
ee
e	dd�dd�Zde
e
ee
dd�d	d
�Ze
dd�dd
�Zde
dd�dd�Zde
dd�dd�Zdeee
fe	ee
dd�dd�Zde
e
dd�dd�ZdS) rFr)�use_mask�limit�randomrqrrN)�protocol�	transportr�r�r�rqrrrCcCsB||_||_||_|j|_||_||_d|_||_d|_d|_	dS)NFr)
r�r�r��	randrangerqrr�_closing�_limit�_output_size�_compressobj)rDr�r�r�r�r�rqrrr!r!r"rI>szWebSocketWriter.__init__)rGr�rqrCc�s�|jr|tj@std��d}|s&|jr�|dkr�|rFtjtj|d�}n"|jsbtjtj|jd�|_|j}|�|�}||�	|j
r�tjntj�}|�
t�r�|dd�}|dB}t|�}|j}|r�d}nd}|d	kr�td|B|B||B�}	n<|d
k�rtd|B|Bd	|B|�}	ntd|B|Bd|B|�}	|�r�|�dd�}
|
�d
d�}
t|�}t|
|�|�|	|
|�|jt|	�t|
�t|�7_nLt|�tk�r�|�|	�|�|�n|�|	|�|jt|	�t|�7_|j|jk�r�d|_|j��IdHdS)z<Send a frame over the websocket with message as its payload.z!Cannot write to closing transportrr+)�levelr�N����@�r�ir�l��rZZbig)r�rr2�ConnectionResetErrorrqr��compressobjZZ_BEST_SPEEDr��flushrrZZ_FULL_FLUSHZZ_SYNC_FLUSH�endswithrgr`r��	PACK_LEN1�	PACK_LEN2�	PACK_LEN3r��to_bytesr^r��_writer�r=r�r�Z
_drain_helper)rDrGr�rqZrsvr�Z
msg_lengthr�Zmask_bit�headerrYr!r!r"�_send_frameTsR



$
zWebSocketWriter._send_frame)rArCcCs,|jdks|j��rtd��|j�|�dS)Nz!Cannot write to closing transport)r�Z
is_closingr��write)rDrAr!r!r"r��szWebSocketWriter._writer�)rGrCc�s,t|t�r|�d�}|�|tj�IdHdS)zSend pong message.zutf-8N)r]rK�encoder�rr1)rDrGr!r!r"r8�s

zWebSocketWriter.pongc�s,t|t�r|�d�}|�|tj�IdHdS)zSend ping message.zutf-8N)r]rKr�r�rr0)rDrGr!r!r"r7�s

zWebSocketWriter.ping)rGr6rqrCc�sJt|t�r|�d�}|r0|�|tj|�IdHn|�|tj|�IdHdS)z<Send a frame over the websocket with message as its payload.zutf-8N)r]rKr�r�rr/r.)rDrGr6rqr!r!r"�send�s


zWebSocketWriter.send��)rFrGrCc�sDt|t�r|�d�}z"|jt|�|tjd�IdHWdd|_XdS)z<Close the websocket, sending the specified code and message.zutf-8)r�NT)r]rKr�r��PACK_CLOSE_CODErr2r�)rDrFrGr!r!r"r9�s

zWebSocketWriter.close)N)r�)r�)FN)r�r�)rrrr>r�ZRandomr�asyncioZ	Transportr�r#rrIrUrr�r�r8r7rrKr�r9r!r!r!r"r=s
?		r)F)rlFF)QrNr��collectionsrEr��re�sysr��enumr�structr�typingrrrrrr	r
rrZ
base_protocolrZhelpersrZstreamsrZtypedefsr�__all__rr'r#�__annotations__rrrU�unpack_fromr�r��unpackr��packr�r�r�r�r=r>�
namedtupler?rr4rr3rr�rrP�	byteorderrQrKrVrXr^rdr�Z
_websocketre�ImportErrorrg�compilerhrir�rsrxryrrr!r!r!r"�<module>sp,






	"
 4@