bgZddlZddlZddlZddlZddlmZddlmZddlm Z ddl m Z ddl mZddlmZmZmZmZmZmZmZmZmZmZmZddlZddlZdd lmZmZdd l m!Z!dd l"m#Z#dd l m$Z$m%Z%m&Z&m'Z'm(Z(dd l)m*Z*m+Z+ddl,m-Z-m.Z.ddl/m0Z0ddl1m2Z2ddl3m4Z4ddl5m6Z6ddl7m8Z8m9Z9dZ:erddl;me'dde&iiddddej?d Z@GddeAZBGddeAZCejDddd Gd!d"ZEeee'eEfe.fZFGd#de!ZGdS)$N)deque)suppress)escape) HTTPStatus)Logger) TYPE_CHECKINGAny AwaitableCallableDequeOptionalSequenceTupleTypeUnioncast)AbstractAccessLoggerAbstractStreamWriter) BaseProtocol) ceil_timeout)HttpProcessingErrorHttpRequestParser HttpVersion10RawRequestMessage StreamWriter) access_logger server_logger) EMPTY_PAYLOAD StreamReader) tcp_keepalive) HTTPException) AccessLogger) BaseRequest)ResponseStreamResponse)RequestHandlerRequestPayloadErrorPayloadAccessError)Serverr'zasyncio.Task[None]UNKNOWN/TFceZdZdZdS)r(zPayload parsing error.N__name__ __module__ __qualname____doc__K/opt/cloudlinux/venv/lib64/python3.11/site-packages/aiohttp/web_protocol.pyr(r(Ns    r4r(ceZdZdZdS)r)z-Payload was accessed after response was sent.Nr.r3r4r5r)r)Rs7777r4r)) auto_attribsfrozenslotsc.eZdZUeed<eed<eed<dS)_ErrInfostatusexcmessageN)r/r0r1int__annotations__ BaseExceptionstrr3r4r5r;r;Vs. KKK  LLLLLr4r;c!eZdZdZdZdZddeeeej ddddd d dd d d dde j de de dedeededede dededede dede de f fdZdefd Zede fd!ZdHd#ee dd$fd%Zd&e jdd$ffd' Zd(eedd$ffd) Zd*edd$fd+ZdId,Zd-e dd$fd.Z!d/e dd$fd0Z"dId1Z#dId2Z$d3e%d4e&d5e dd$fd6Z'd7ed8edd$fd9Z(d7ed8edd$fd:Z)dId;Z*d3e%dZ.dId?Z/d3e%d@e&d connected disconnected)formatrtr/ transportrss r5__repr__zRequestHandler.__repr__s0 N #>5KK>   r4c|jSN)rLr{s r5r^z RequestHandler.keepalive_timeouts &&r4.@timeoutNcKd|_|j|j|jr|jt t jt j5t|4d{V|j +|j t j|j &|j s |j d{Vdddd{Vn#1d{VswxYwYdddn #1swxYwY|j |j |j "|j d|_ dSdS)zDo worker process exit preparations. We need to clean up everything and stop accepting requests. It is especially important for keep-alive connections. TN)rZrKcancelrPrasyncioCancelledError TimeoutErrorrr[_cancelrQdonerzclose)rsrs r5shutdownzRequestHandler.shutdowns& !  ! -  " ) ) + + + < " L   ! ! !g,g.B C C - -#G,, - - - - - - - -(4)11'2H2J2JKKK%1$:L:Q:Q:S:S1,,,,,,,,  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -   )   % % ' ' ' > % N " " "!DNNN & %s7.DA C6$D6 D DD DDDrzcTt|ttj|}|jrt ||j| |_ |j J|j ||dSr~) rlconnection_maderr TransportrIr!_loop create_taskstartrQrF)rsrzreal_transportrts r5rzRequestHandler.connection_mades  ***g/;;   * . ) ) )!Z33DJJLLAA}((( %%dN;;;;;r4r=cx|jdS|j||t||jj}d|_d|_d|_d|_d|_|j|j |j +|td}|j ||j |j |r |j|j d|_|j"|jd|_dSdS)NTzConnection lost)rFconnection_lostrlhandler_cancellationrZrHrGrTrKrr[ConnectionResetErrorrrPrQrSfeed_eof)rsr=rrts r5rzRequestHandler.connection_lost%sB = F %%dC000 $$$ $}A   $ $#  ! -  " ) ) + + +  ,{*+<==  ! ) )# . . . < # L   ! ! !  (D$6$B   % % ' ' '!   +  ) ) + + +#'D  , +r4parserc|jJ||_|jr(|j|jd|_dSdS)Nr4)rSrO feed_data)rsrs r5 set_parserzRequestHandler.set_parserIsV#+++%   %  * *4+= > > >!$D    % %r4cdSr~r3r{s r5 eof_receivedzRequestHandler.eof_receivedSs r4datac|js|jrdS|j|js|jJ |j|\}}}n:#t $r-}td||jtfg}d}d}Yd}~nd}~wwxYw|pdD]1\}}|xj dz c_ |j ||f2|j }|r+|)|s|d||_|r |r ||_dSdSdS|j|jr|r|xj|z c_dS|r5|j|\} }| r|dSdSdS)Ni)r<r=r>Fr4r3r)rZrYrSrRrTrrr;r>rrDrNappendrPr set_resultrOr) rsrmessagesupgradedtailr=msgpayloadwaitereofs r5 data_receivedzRequestHandler.data_receivedVs      F   ' ''333 +/+?+I+I$+O+O((DD&   Sc3;GGGW!  !)B 6 6 W##q(##%%sGn5555\F (F.v{{}}.!!$'''$DM *D *%)""" * * * * ! )dm ) )   $ &     ,66t< % N " " "!DNNN & %r4requestresponsetimec|j8|j|||j|z dSdSr~)rlogrr)rsrrrs r5 log_accesszRequestHandler.log_accesssG   )   " "7Hdjoo6G6G$6N O O O O O * )r4argskwc<|jr|jj|i|dSdSr~)rWrVrsrrs r5 log_debugzRequestHandler.log_debugs6 : + DK t *r * * * * * + +r4c*|jj|i|dSr~)rV exceptionrs r5 log_exceptionzRequestHandler.log_exceptions" t*r*****r4c |js|jsdS|j|jz}|jr3|j|kr|dS|j|j |j |_ dSr~) rZrErJrLrPrrr call_laterKEEPALIVE_RESCHEDULE_DELAY_process_keepaliverK)rsnexts r5rz!RequestHandler._process_keepalives   DO  F#d&== < z  4''  """"&!6!6  +  #" " r4 start_timerncK|jJ ||_||d{V}d|_n #d|_wxYw t|ddrtjdt ||||d{V}n#t$r)}|}||||d{V}Yd}~nd}~wtj $rtj $rT}| d|| |d}||||d{V}Yd}~nNd}~wt$r>}| |d|}||||d{V}Yd}~nd}~wwxYw||fS)N__http_exception__Fzlreturning HTTPException object is deprecated (#2415) and will be removed, please raise the exception insteadzRequest handler timed out.exc_infoi)rGr[getattrwarningswarnDeprecationWarningfinish_responser"rrrr handle_error Exception)rsrrrnrespresetr=s r5_handle_requestzRequestHandler._handle_requests. $000 J -(/%,_W55555555(,%%%,,,,%t1599  9' ..wjIIIIIIIIEE- J J JD..wjIIIIIIIIEEEEEE%    # J J J NN7#N F F F$$Wc22D..wjIIIIIIIIEEEEEE J J J$$Wc377D..wjIIIIIIIIEEEEEE JU{s=.B 7B E-B22!E-A D"" E-/4E((E-cK|j}|j}|J|j}|J|j}d}|jJ|jJ|js|jsZ ||_ |j d{Vn#tj $r Yd|_ nDwxYw d|_ n #d|_ wxYw|j \}}| }|xjdz c_t||} t!|t"r||} t&}n|j} ||||| |} |j|| || } | d{V\}} n#tj t,f$r|dY|j||dn|js^|jrU|jsN|J|j }||_|j#|||z|j|_nnnwxYw~ | r|d |j||dn\|js^|jrU|jsN|J|j }||_|j#|||z|j|_nnnt?|j |_|!s_|j"}|js |r |d|| }||z}tGtj$tj 5|!s||krtK||z 4d{V|&d{Vdddd{Vn#1d{VswxYwY| }|!s||kdddn #1swxYwY|!s0|js)|d|'|(tSn1#tj $r|dY|j||dn|js^|jrU|jsN|J|j }||_|j#|||z|j|_nnntT$r<}|j+r|,d | |-Yd}~nEd}~wt\$r5}|,d | |-Yd}~nd}~wwxYw|j||dn|js\|jrT|jsM|J|j }||_|j#|||z|j|_nnn#|j||dne|js^|jrT|jsM|J|j }||_|j#|||z|j|_nYn wxYw|j|js)d|_|j|j'dSdSdS) 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.z(Ignored premature client disconnection 2z'Start lingering close timer for %s sec.zUncompleted request.z'Ignored premature client disconnection zUnhandled runtime exceptionrzUnhandled exception)/rrQrFrLrHrGrZrN create_futurerPrrpopleftrrequests_countr isinstancer;_make_error_handlerERRORrrConnectionErrorrrzrErYrJrKcall_atrboolris_eofrMrrrreadanyr set_exceptionr) RuntimeErrorrWrrr)rsrihandlerrhr^rr>rrwriterrnrtaskrnowrdend_tr=s r5rzRequestHandler.startsz$"""-""" 3$000$000#^ > ((#'#5#5#7#7DL,&&&&&&&&-#'DLL'$(DLL4DL''''#~5577 GWIIKKE  " "a ' " "!$--F'8,, 8"&":":7"C"C"&"7++GWdFGTTGE z--((%II(,******KD%%.@NN#KLLL^>)d.>NN#LMMMM*  t{ ,8"&*//"3"3C36D0#5=9=$'*;$;T=T:":" 6 g NN#MNNNR>)d.>NN#LMMMM*  t{ ,8"&*//"3"3C36D0#5=9=$'*;$;T=T:":" 6 Q#'t"7"7~~''%%)%9N, 2 2E~#iikk #n 4%g&:G>++%D4E%'=>>> %%&8&:&:;;;;)   HIII>)d.>NN#LMMMM*  t{ ,8"&*//"3"3C36D0#5=9=$'*;$;T=T:":" 6   # # #:T&&'Ds&SSS  """""""" # # #""#83"GGG  """""""" #>)d.>NN#LMMMM*  t{ ,8"&*//"3"3C36D0#5=9=$'*;$;T=T:":" 6 >)d.>NN#LMMMM*  t{ ,8"&*//"3"3C36D0#5=9=$'*;$;T=T:":" 6}#^ B  '!%D ~)$$&&&&& ' '))s &A21B2B B B  B B!/R 7 FR +H7.R 6H77R BR -3P O ;P O PO 1P R PR P A(R X> $V8.X>6 V8?2U61X>6 V8+V3.X>3V88X>>B[[rcK|jN|jdd|_|jr&|j|jd|_ |j}nA#t $r4|tdtd|wxYw ||d{V| d{V| |||dS#t$r| |||YdSwxYw)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. NFr4z+Missing return statement on request handlerz7Web-handler should return a response instance, got {!r}T) rT set_upgradedrRrOrprepareAttributeErrorrry write_eofrr)rsrrr prepare_meths r5rzRequestHandler.finish_responseZs[   +  - -e 4 4 4!DM! )$..t/ABBB%(" B#+C''!D  D rr<r>c|d||jjdkrtdd}|tjkrdtj}tjj}d}|jr?tt5tj }dddn #1swxYwYd|j d d vr1|rt|}d |d }d ||}d}n |r|}|dz|z}t!|||} | | S)zHandle errors. Returns HTTP response with specific status code. Logs additional information. It always closes current connection. zError handling requestrrzMResponse is sent already, cannot send another response with the error messagez text/plainz{0.value} {0.phrase}Nz text/htmlAcceptz

Traceback:

z
zV{title}

{title}

{msg} )titlerz )r<text content_type)rr output_sizerrINTERNAL_SERVER_ERRORry descriptionrWrr traceback format_excheadersget html_escaper%r) rsrr<r=r>ctrrtbrs r5rzRequestHandler.handle_errors 3cBBB > % ) )!)   Z5 5 5*11*2RSSE2>CBz 0i((00"-//B000000000000000go11(B????B$RBArAAAC0&u#&..  !C&.3.vG"EEE  sB66B:=B:err_infoc4dtdtffd }|S)NrrucVK|jjjSr~)rr<r=r>)rrrss r5rz3RequestHandler._make_error_handler..handlers/$$(,8H r4)r$r&)rsrrs`` r5rz"RequestHandler._make_error_handlers< ; >        r4)r)ruN)rNN)5r/r0r1r2r __slots__rr#r LOG_FORMATrAbstractEventLooprprrrrrBr?rmr|propertyr^r r BaseTransportrrArr rrbytesrrrrr$r&rrrrr r rrrrrr;r __classcell__)rts@r5r'r'`s%%N"#ID$("&7C*!-!8! " $! $()%H"H"H"H"' H" ! H"  H"H"34H"H"H"H"H"H"H"H" !H""#H"$!&%H"H"H"H"H"H"T #    '5'''X'""huo"""""> <)> <4 < < < < < <"(8M#:"(t"("("("("("(H%%%%%%    %%%D%%%%N*d*t****""""""""P"P.<PDIP PPPP +s+#+$+++++3+c+d++++    &%%%";->1J"JK % ~t# $ %%%%Nw'w'w'w'r#"#*8#FK# ####P'+!% 1111m $ 1 # 1  1111f  ;->!:: ;r4)Hrasyncio.streamsrr collectionsr contextlibrhtmlrrhttprloggingrtypingrr r r r r rrrrrattryarlabcrr base_protocolrhelpersrrrrrrrrrstreamsrr tcp_helpersr!web_exceptionsr"web_logr# web_requestr$ web_responser%r&__all__ web_serverr*_RequestFactory_RequestHandlerURLrrr(r)sr;_MsgTyper'r3r4r5rs&&&&&&                           ;;;;;;;;''''''!!!!!!.-------00000000&&&&&&))))))!!!!!!$$$$$$22222222 I#""""""  K=)N*CCD    DHSMM  !!!!!)!!!88888888T$d33343 ((23\A BZ Z Z Z Z \Z Z Z Z Z r4