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__/web_protocol.cpython-37.pyc
B

�k�aX�
@sddlZddlZddlZddlZddlmZddlmZddlm	Z
ddlmZddl
mZddlmZmZmZmZmZmZmZmZmZmZmZddlZddlZdd	lmZmZdd
l m!Z!ddl"m#Z#ddlm$Z$m%Z%m&Z&m'Z'm(Z(dd
l)m*Z*m+Z+ddl,m-Z-m.Z.ddl/m0Z0ddl1m2Z2ddl3m4Z4ddl5m6Z6ddl7m8Z8m9Z9dZ:e�rZddl;m<Z<ee'e.dedge6fZ=ee6gee9fZ>e'dde&iidddde�?d��
Z@Gdd�deA�ZBGdd�deA�ZCejDdddd �Gd!d"�d"��ZEeee'eEfe.fZFGd#d�de!�ZGdS)$�N)�deque)�suppress)�escape)�
HTTPStatus)�Logger)�
TYPE_CHECKING�Any�	Awaitable�Callable�Deque�Optional�Sequence�Tuple�Type�Union�cast�)�AbstractAccessLogger�AbstractStreamWriter)�BaseProtocol)�ceil_timeout)�HttpProcessingError�HttpRequestParser�
HttpVersion10�RawRequestMessage�StreamWriter)�
access_logger�
server_logger)�
EMPTY_PAYLOAD�StreamReader)�
tcp_keepalive)�
HTTPException)�AccessLogger)�BaseRequest)�Response�StreamResponse)�RequestHandler�RequestPayloadError�PayloadAccessError)�Serverr&zasyncio.Task[None]ZUNKNOWN�/TFc@seZdZdZdS)r'zPayload parsing error.N)�__name__�
__module__�__qualname__�__doc__�r/r/�G/opt/alt/python37/lib64/python3.7/site-packages/aiohttp/web_protocol.pyr'Nsr'c@seZdZdZdS)r(z-Payload was accessed after response was sent.N)r+r,r-r.r/r/r/r0r(Rsr()Zauto_attribs�frozen�slotsc@s&eZdZUeed<eed<eed<dS)�_ErrInfo�status�exc�messageN)r+r,r-�int�__annotations__�
BaseException�strr/r/r/r0r3Vs
r3cs�eZdZdZdZdZddeeeej	ddddd	d
dd�
de
jee
eeeeee
eeeeee
d
��fdd�Zed�dd�Zeed�dd��ZdHeedd�dd�Ze
jdd��fdd�Zeedd��fdd�Zedd �d!d"�Zdd�d#d$�Ze dd%�d&d'�Z!e
dd(�d)d*�Z"dd�d+d,�Z#dd�d-d.�Z$e%e&edd/�d0d1�Z'eedd2�d3d4�Z(eedd2�d5d6�Z)dd�d7d8�Z*e%ee+e%ge,e&fe-e&e
fd9�d:d;�Z.dd�d<d=�Z/e%e&ee
d>�d?d@�Z0dIe%eeeeee&dB�dCdD�Z1e2e+e%ge,e&fdE�dFdG�Z3�Z4S)Jr&a�HTTP protocol implementation.

    RequestHandler handles incoming HTTP request. It reads request line,
    request headers and request payload and calls handle_request() method.
    By default it always returns with 404 response.

    RequestHandler handles errors in incoming request, like bad
    status line, bad headers or incomplete payload. If any error occurs,
    connection gets closed.

    keepalive_timeout -- number of seconds before closing
                         keep-alive connection

    tcp_keepalive -- TCP keep-alive is on, default is on

    debug -- enable debug mode

    logger -- custom logger object

    access_log_class -- custom class for access_logger

    access_log -- custom logging object

    access_log_format -- access log format string

    loop -- Optional event loop

    max_line_size -- Optional maximum header line size

    max_field_size -- Optional maximum header field size

    max_headers -- Optional maximum header size

    r)�_request_count�
_keepalive�_manager�_request_handler�_request_factory�_tcp_keepalive�_keepalive_time�_keepalive_handle�_keepalive_timeout�_lingering_time�	_messages�
_message_tail�_waiter�
_task_handler�_upgrade�_payload_parser�_request_parserZ_reading_paused�logger�debug�
access_logr�_close�_force_close�_current_requestg�R@TFi�i�g$@i)
�keepalive_timeoutr rL�access_log_classrN�access_log_formatrM�
max_line_size�max_headers�max_field_size�lingering_time�read_bufsize�auto_decompressr))�manager�looprRr rLrSrNrTrMrUrVrWrXrYrZc
s�t��|�d|_d|_d|_||_|j|_|j|_	||_
d|_d|_||_
t|
�|_t�|_d|_d|_d|_d|_d|_t||||
||t|d�|_||_|	|_||_|r�|||�|_nd|_d|_d|_dS)NrFg�)rUrWrVZpayload_exceptionrZ) �super�__init__r;r<rQr=�request_handlerr>Zrequest_factoryr?r@rArBrC�floatrDrrErFrGrHrIrJrr'rKrLrMrNrrOrP)�selfr[r\rRr rLrSrNrTrMrUrVrWrXrYrZ)�	__class__r/r0r_�sH

zRequestHandler.__init__)�returncCsd�|jj|jdk	rdnd�S)Nz<{} {}>Z	connectedZdisconnected)�formatrcr+�	transport)rbr/r/r0�__repr__�szRequestHandler.__repr__cCs|jS)N)rC)rbr/r/r0rR�sz RequestHandler.keepalive_timeout�.@N)�timeoutrdc�s�d|_|jdk	r|j��|jr*|j��ttjtj��bt|�4IdH�@|j	dk	rf|j	�
t���|jdk	r�|j��s�|jIdHWdQIdHRXWdQRX|jdk	r�|j��|j
dk	r�|j
��d|_
dS)z�Do worker process exit preparations.

        We need to clean up everything and stop accepting requests.
        It is especially important for keep-alive connections.
        TN)rPrB�cancelrGr�asyncio�CancelledError�TimeoutErrorrrQ�_cancelrH�donerf�close)rbrir/r/r0�shutdown�s 



&



zRequestHandler.shutdown)rfrdcsXt��|�ttj|�}|jr&t|�|j�|�	��|_
|jdk	sFt�|j�||�dS)N)
r^�connection_maderrkZ	Transportr@r �_loop�create_task�startrHr=�AssertionError)rbrfZreal_transport)rcr/r0rrszRequestHandler.connection_made)r5rdcs�|jdkrdS|j�||�t��|�d|_d|_d|_d|_d|_|jdk	rZ|j��|j	dk	r�|dkrtt
d�}|j	�|�|jdk	r�|j��|j
dk	r�|j
��d|_|jdk	r�|j��d|_dS)NTzConnection lost)r=�connection_lostr^rPr?r>rKrBrjrQ�ConnectionResetErrorrnrHrGrJZfeed_eof)rbr5)rcr/r0rws.









zRequestHandler.connection_lost)�parserrdcCs2|jdkst�||_|jr.|j�|j�d|_dS)Nr])rJrvrF�	feed_data)rbryr/r/r0�
set_parser9s
zRequestHandler.set_parsercCsdS)Nr/)rbr/r/r0�eof_receivedCszRequestHandler.eof_received)�datardc

CsF|js|jrdS|jdkr�|js�|jdk	s.t�y|j�|�\}}}Wn@tk
r�}z"td||j	d�t
fg}d}d}Wdd}~XYnXx2|p�dD]&\}}|jd7_|j�
||f�q�W|j}|r�|dk	r�|��s�|�d�||_|r�|r�||_nN|jdk�r|j�r|�r|j|7_n$|�rB|j�|�\}	}|	�rB|��dS)Ni�)r4r5r6Fr]r/r)rPrOrJrIrKrvrzrr3r6rr;rE�appendrGroZ
set_resultrFrp)
rbr}ZmessagesZupgraded�tailr5�msg�payloadZwaiter�eofr/r/r0�
data_receivedFs2
zRequestHandler.data_received)�valrdcCs ||_|jr|j��d|_dS)zMSet keep-alive connection mode.

        :param bool val: new state.
        N)r<rBrj)rbr�r/r/r0�
keep_alivems
zRequestHandler.keep_alivecCsd|_|jr|j��dS)z�Close connection.

        Stop accepting new pipelining messages and close
        connection when handlers done processing messages.
        TN)rOrGrj)rbr/r/r0rpwszRequestHandler.closecCs4d|_|jr|j��|jdk	r0|j��d|_dS)zForcefully close connection.TN)rPrGrjrfrp)rbr/r/r0�force_close�s


zRequestHandler.force_close)�request�response�timerdcCs(|jdk	r$|j�|||j��|�dS)N)r�logrsr�)rbr�r�r�r/r/r0�
log_access�s
zRequestHandler.log_access)�args�kwrdcOs|jr|jj||�dS)N)rMrL)rbr�r�r/r/r0�	log_debug�szRequestHandler.log_debugcOs|jj||�dS)N)rLZ	exception)rbr�r�r/r/r0�
log_exception�szRequestHandler.log_exceptioncCsT|js|jsdS|j|j}|jr<|j��|kr<|��dS|j�|j	|j
�|_dS)N)rPr<rArCrGrsr�r�Z
call_later�KEEPALIVE_RESCHEDULE_DELAY�_process_keepaliverB)rb�nextr/r/r0r��sz!RequestHandler._process_keepalive)r��
start_timer`rdc
�sP|jdk	st�y&z||_||�IdH}Wdd|_XWn�tk
rn}z|}|�|||�IdH}Wdd}~XYn�tjk
r��Yn�tjk
r�}z2|jd|d�|�	|d�}|�|||�IdH}Wdd}~XYntt
k
�r}z&|�	|d|�}|�|||�IdH}Wdd}~XYn0Xt|dd��r4t�
dt�|�|||�IdH}||fS)NzRequest handler timed out.)�exc_infoi�i�Z__http_exception__Fzlreturning HTTPException object is deprecated (#2415) and will be removed, please raise the exception instead)r>rvrQr!�finish_responserkrlrmr��handle_error�	Exception�getattr�warnings�warn�DeprecationWarning)rbr�r�r`�respr5�resetr/r/r0�_handle_request�s0$$&zRequestHandler._handle_requestc�s�|j}|j}|dk	st�|j}|dk	s*t�|j}d}|jdk	sBt�|jdk	sPt��x(|j�sz|js�z8y|�	�|_
|j
IdHWntjk
r�PYnXWdd|_
X|j�
�\}}|��}|jd7_t||�}	t|t�r�|�|�}
t}n|j}
|�||||	|�}�z��yR|j�|�|||
��}y|IdH\}}
Wn(tjtfk
�r\|�d�PYnX~|
�rr|�d�Pt|j�|_|���sN|j}|j�s*|�r*|�d|�|��}||}ttjtj��^xV|���s||k�rt ||�4IdH�|�!�IdHWdQIdHRX|��}�q�WWdQRX|���sN|j�sN|�d�|�"�|�#t$��Wn�tjk
�r�|�d�PYnzt%k
�r�}z"|j&�r�|j'd|d	�|�(�Wdd}~XYn:t)k
�r�}z|j'd
|d	�|�(�Wdd}~XYnXWd|j*dk�r |dk	�r |�d�nV|j�sv|j�rt|j+�st|dk	�rv|j��}||_,|j-dk�rv|�.|||j/�|_-nPXqTW|j�s�d|_|j*dk	�r�|j*�"�dS)a_Process incoming request.

        It reads request line, request headers and request payload, then
        calls handle_request() method. Subclass has to override
        handle_request(). start() handles various exceptions in request
        or response handling. Connection is being closed always unless
        keep_alive(True) specified.
        Nrz&Ignored premature client disconnectionz(Ignored premature client disconnection 2z'Start lingering close timer for %s sec.zUncompleted request.z'Ignored premature client disconnection zUnhandled runtime exception)r�zUnhandled exceptionz'Ignored premature client disconnection.)0rsrHrvr=rCr?r>rPrEZ
create_futurerGrkrl�popleftr�Zrequests_countr�
isinstancer3�_make_error_handler�ERRORrtr��ConnectionErrorr��boolr�r<Zis_eofrDrrmrZreadanyrpZ
set_exceptionr(�RuntimeErrorrMr�r�r�rfrOrArBZcall_atr�)rbr\�handlerr[rRr�r6r�ru�writerr`r�Ztaskr�rXZnowZend_tr5r/r/r0ru�s�	










zRequestHandler.start)r�r�r�rdc�s�|jdk	r6|j�d�d|_|jr6|j�|j�d|_y
|j}Wn4tk
rt|dkrbtd��ntd�|���YnXy ||�IdH|�	�IdHWn"t
k
r�|�|||�dSX|�|||�dSdS)aPrepare the response and write_eof, then log access.

        This has to
        be called within the context of any exception so the access logger
        can get exception information. Returns True if the client disconnects
        prematurely.
        NFr]z+Missing return statement on request handlerz7Web-handler should return a response instance, got {!r}T)rKZset_upgradedrIrFrzZprepare�AttributeErrorr�reZ	write_eofr�r�)rbr�r�r�Zprepare_methr/r/r0r�Is,



zRequestHandler.finish_response��)r�r4r5r6rdc
	Cs�|jd|d�|jjdkr"td��d}|tjkr�d�tj�}tjj}d}|jrjt	t
��t��}WdQRXd|j
�d	d
�kr�|r�t|�}d|�d�}d
j||d�}d}n|r�|}|d|}t|||d�}	|	��|	S)z�Handle errors.

        Returns HTTP response with specific status code. Logs additional
        information. It always closes current connection.
        zError handling request)r�rzMResponse is sent already, cannot send another response with the error messagez
text/plainz{0.value} {0.phrase}Nz	text/htmlZAccept�z<h2>Traceback:</h2>
<pre>z</pre>zV<html><head><title>{title}</title></head><body>
<h1>{title}</h1>
{msg}
</body></html>
)�titler�z

)r4�textZcontent_type)r�r�Zoutput_sizer�rZINTERNAL_SERVER_ERRORre�descriptionrMrr��	traceback�
format_excZheaders�get�html_escaper$r�)
rbr�r4r5r6Zctr�r��tbr�r/r/r0r�ns2


zRequestHandler.handle_error)�err_infordcsttd���fdd�}|S)N)r�rdc�s��|�j�j�j�S)N)r�r4r5r6)r�)r�rbr/r0r��sz3RequestHandler._make_error_handler.<locals>.handler)r#r%)rbr�r�r/)r�rbr0r��sz"RequestHandler._make_error_handler)rh)r�NN)5r+r,r-r.r��	__slots__rr"rZ
LOG_FORMATrkZAbstractEventLooprar�rrrr:r7r_rg�propertyrRrrqZ
BaseTransportrrr9rwrr{r|�bytesr�r�rpr�r#r%r�r�r�r�r
r	rr�rur�r�r3r��
__classcell__r/r/)rcr0r&`s\" :2 
'


"z&.)HrkZasyncio.streamsr�r��collectionsr�
contextlibrZhtmlrr�ZhttprZloggingr�typingrrr	r
rrr
rrrr�attrZyarl�abcrrZ
base_protocolrZhelpersrrrrrrr�rrZstreamsrrZtcp_helpersr Zweb_exceptionsr!Zweb_logr"Zweb_requestr#Zweb_responser$r%�__all__Z
web_serverr)Z_RequestFactoryZ_RequestHandlerZURLr�r�r'r(�sr3Z_MsgTyper&r/r/r/r0�<module>sb4