grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026o ®û|j jã@sê dZddlZddlZddlZddlZddlZddlmZddlm Zgd¢Z e edƒr3e   gd¢¡e edƒr?e   gd ¢¡e ed ƒrHej ZnejZGd d „d ƒZGd d„deƒZGdd„deƒZe edƒrnGdd„dƒZGdd„deƒZGdd„dƒZGdd„dƒZe edƒr›Gdd„deeƒZGdd„deeƒZGdd„deeƒZGdd „d eeƒZe edƒrÔGd!d"„d"eƒZGd#d$„d$eƒZGd%d&„d&eeƒZGd'd(„d(eeƒZGd)d*„d*ƒZ Gd+d,„d,e ƒZ!Gd-d.„d.eƒZ"Gd/d0„d0e ƒZ#dS)1z0.4éN)ÚBufferedIOBase)Ú monotonic) Ú BaseServerÚ TCPServerÚ UDPServerÚThreadingUDPServerÚThreadingTCPServerÚBaseRequestHandlerÚStreamRequestHandlerÚDatagramRequestHandlerÚThreadingMixInÚfork)ÚForkingUDPServerÚForkingTCPServerÚ ForkingMixInÚAF_UNIX)ÚUnixStreamServerÚUnixDatagramServerÚThreadingUnixStreamServerÚThreadingUnixDatagramServerÚ PollSelectorc@sœeZdZ dZdd„Zdd„Zd%dd„Zd d „Zd d „Zd d„Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd „Zd!d"„Zd#d$„ZdS)&rNcCs" ||_||_t ¡|_d|_dS©NF)Úserver_addressÚRequestHandlerClassÚ threadingZEventÚ_BaseServer__is_shut_downÚ_BaseServer__shutdown_request)Úselfrr©rú3/opt/alt/python310/lib64/python3.10/socketserver.pyÚ__init__Ès   zBaseServer.__init__cCó dS©Nr©rrrrÚserver_activateÏózBaseServer.server_activateçà?cCs² |j ¡zItƒ�(}| |tj¡|js+| |¡}|jrn |r$| ¡|  ¡|jrWdƒn1s5wYWd|_|j  ¡dSWd|_|j  ¡dSd|_|j  ¡wr) rÚclearÚ_ServerSelectorÚregisterÚ selectorsÚ EVENT_READrÚselectÚ_handle_request_noblockÚservice_actionsÚset)rZ poll_intervalÚselectorÚreadyrrrÚ serve_forever×s,  ø€ý ò ÿ zBaseServer.serve_forevercCs d|_|j ¡dS©NT)rrÚwaitr#rrrÚshutdownôszBaseServer.shutdowncCr!r"rr#rrrr.þr%zBaseServer.service_actionscCsÆ |j ¡}|dur|j}n |jdurt||jƒ}|dur"tƒ|}tƒ�4}| |tj¡ |  |¡}|r@|  ¡WdƒS|durX|tƒ}|dkrX|  ¡WdƒSq.1s\wYdS)NTr) ÚsocketZ gettimeoutÚtimeoutÚminÚtimer(r)r*r+r,r-Úhandle_timeout)rr7Zdeadliner0r1rrrÚhandle_requests,     ú õýzBaseServer.handle_requestcCs� z| ¡\}}Wn tyYdSw| ||¡rAz | ||¡WdSty8| ||¡| |¡YdS| |¡‚| |¡dSr")Ú get_requestÚOSErrorÚverify_requestÚprocess_requestÚ ExceptionÚ handle_errorÚshutdown_request©rÚrequestÚclient_addressrrrr-/s  ÿ    z"BaseServer._handle_request_noblockcCr!r"rr#rrrr:FszBaseServer.handle_timeoutcCs dSr3rrCrrrr>Mr%zBaseServer.verify_requestcCs | ||¡| |¡dSr")Úfinish_requestrBrCrrrr?Us zBaseServer.process_requestcCr!r"rr#rrrÚ server_close^r%zBaseServer.server_closecCs | |||¡dSr")rrCrrrrFfszBaseServer.finish_requestcCs | |¡dSr"©Ú close_request©rrDrrrrBjszBaseServer.shutdown_requestcCr!r"rrJrrrrInszBaseServer.close_requestcCsB tdtjd�td|tjd�ddl}| ¡tdtjd�dS)Nz(----------------------------------------)Úfilez4Exception occurred during processing of request fromr)ÚprintÚsysÚstderrÚ tracebackÚ print_exc)rrDrErOrrrrArsÿzBaseServer.handle_errorcCs|Sr"rr#rrrÚ __enter__ózBaseServer.__enter__cGs | ¡dSr")rG)rÚargsrrrÚ__exit__‚s zBaseServer.__exit__)r&)Ú__name__Ú __module__Ú __qualname__r7r r$r2r5r.r;r-r:r>r?rGrFrBrIrArQrTrrrrr™s(+    rc@sdeZdZ ejZejZdZdZ ddd„Z dd„Z dd „Z d d „Z d d „Zdd„Zdd„Zdd„ZdS)réFTcCsR t |||¡t |j|j¡|_|r'z | ¡| ¡WdS| ¡‚dSr")rr r6Úaddress_familyÚ socket_typeÚ server_bindr$rG)rrrZbind_and_activaterrrr ½sÿúzTCPServer.__init__cCs: |jr|j tjtjd¡|j |j¡|j ¡|_dS)Né)Úallow_reuse_addressr6Ú setsockoptZ SOL_SOCKETZ SO_REUSEADDRZbindrZ getsocknamer#rrrr[Ês zTCPServer.server_bindcCs |j |j¡dSr")r6ZlistenÚrequest_queue_sizer#rrrr$ÕszTCPServer.server_activatecCs |j ¡dSr")r6Úcloser#rrrrGÝszTCPServer.server_closecCó |j ¡Sr")r6Úfilenor#rrrrbåó zTCPServer.filenocCrar")r6Zacceptr#rrrr<írczTCPServer.get_requestcCs4 z| tj¡Wn tyYnw| |¡dSr")r5r6ZSHUT_WRr=rIrJrrrrBõs ÿzTCPServer.shutdown_requestcCs | ¡dSr")r`rJrrrrIÿs zTCPServer.close_requestN)T)rUrVrWr6ZAF_INETrYZ SOCK_STREAMrZr_r]r r[r$rGrbr<rBrIrrrrr†s-    rc@s<eZdZ dZejZdZdd„Zdd„Z dd„Z d d „Z d S) rFi cCs |j |j¡\}}||jf|fSr")r6ZrecvfromÚmax_packet_size)rÚdataZ client_addrrrrr<szUDPServer.get_requestcCódSr"rr#rrrr$ózUDPServer.server_activatecCs| |¡dSr"rHrJrrrrBszUDPServer.shutdown_requestcCrfr"rrJrrrrIrgzUDPServer.close_requestN) rUrVrWr]r6Z SOCK_DGRAMrZrdr<r$rBrIrrrrrs rcsTeZdZ dZdZdZdZddœdd„Zd d „Zd d „Z d d„Z ‡fdd„Z ‡Z S)ri,Né(TF©Úblockingc Csî |jdurdSt|jƒ|jkr?zt dd¡\}}|j |¡Wnty.|j ¡Yn ty6Yn wt|jƒ|jks|j  ¡D]0}z|rKdntj }t ||¡\}}|j |¡WqDtyl|j |¡YqDtytYqDwdS)Néÿÿÿÿr) Úactive_childrenÚlenÚ max_childrenÚosÚwaitpidÚdiscardÚChildProcessErrorr'r=ÚcopyÚWNOHANG)rrjÚpidÚ_ÚflagsrrrÚcollect_children(s0   ÿù   ÿözForkingMixIn.collect_childrencCó | ¡dSr"©rxr#rrrr:Kó zForkingMixIn.handle_timeoutcCryr"rzr#rrrr.Rr{zForkingMixIn.service_actionscCsÄ t ¡}|r|jdurtƒ|_|j |¡| |¡dSd}z/z | ||¡d}Wnty9| ||¡YnwWz |  |¡Wt  |¡dSt  |¡wz |  |¡Wt  |¡wt  |¡w)Nr\r) ror rlr/ÚaddrIrFr@rArBÚ_exit)rrDrEruZstatusrrrr?Ys,     ÿ€ ý zForkingMixIn.process_requestcstƒ ¡|j|jd�dS)Nri)ÚsuperrGrxÚblock_on_closer#©Ú __class__rrrGrs zForkingMixIn.server_close) rUrVrWr7rlrnrrxr:r.r?rGÚ __classcell__rrr€rrs#rcs6eZdZ ‡fdd„Zdd„Zdd„Zdd„Z‡ZS) Ú_Threadscs"| ¡|jr dStƒ |¡dSr")ÚreapÚdaemonr~Úappend©rÚthreadr€rrr†{sz_Threads.appendcCsg|dd…|dd…<}|Sr"r)rÚresultrrrÚpop_all�sz_Threads.pop_allcCs| ¡D]}| ¡qdSr")rŠÚjoinr‡rrrr‹…s  ÿz _Threads.joincCsdd„|Dƒ|dd…<dS)Ncss�|] }| ¡r|VqdSr")Zis_alive)Ú.0rˆrrrÚ Šs€z _Threads.reap..rr#rrrr„‰óz _Threads.reap)rUrVrWr†rŠr‹r„r‚rrr€rrƒws  rƒc@óeZdZ dd„Zdd„ZdS)Ú _NoThreadscCrfr"rr‡rrrr†‘rRz_NoThreads.appendcCrfr"rr#rrrr‹”rRz_NoThreads.joinN)rUrVrWr†r‹rrrrr��s r�cs<eZdZ dZdZeƒZdd„Zdd„Z‡fdd„Z ‡Z S) r FTc Cs` z(z| ||¡Wnty| ||¡Yn wW| |¡dSW| |¡dS| |¡wr")rFr@rArBrCrrrÚprocess_request_thread¤s ÿÿþz%ThreadingMixIn.process_request_threadcCsN |jr t|ƒ dtƒ¡tj|j||fd�}|j|_|j   |¡|  ¡dS)NÚ_threads)ÚtargetrS) rÚvarsÚ setdefaultrƒrZThreadr‘Údaemon_threadsr…r’r†Ústart)rrDrEÚtrrrr?±sÿ  zThreadingMixIn.process_requestcstƒ ¡|j ¡dSr")r~rGr’r‹r#r€rrrG»s zThreadingMixIn.server_close) rUrVrWr–rr�r’r‘r?rGr‚rrr€rr ˜s  r c@ó eZdZdS)rN©rUrVrWrrrrrÁó rc@r™)rNršrrrrrÂr›rc@r™)rNršrrrrrÄr›rc@r™)rNršrrrrrÅr›rc@óeZdZejZdS)rN©rUrVrWr6rrYrrrrrÉó rc@rœ)rNr�rrrrrÌržrc@r™)rNršrrrrrÏr›rc@r™)rNršrrrrrÑr›rc@ó.eZdZ dd„Zdd„Zdd„Zdd„Zd S) r cCs<||_||_||_| ¡z | ¡W| ¡dS| ¡wr")rDrEÚserverÚsetupÚhandleÚfinish)rrDrEr rrrr ås zBaseRequestHandler.__init__cCrfr"rr#rrrr¡ïrRzBaseRequestHandler.setupcCrfr"rr#rrrr¢òrRzBaseRequestHandler.handlecCrfr"rr#rrrr£õrRzBaseRequestHandler.finishN)rUrVrWr r¡r¢r£rrrrr Ós   r c@s.eZdZ dZdZdZdZdd„Zdd„ZdS) r rkrNFcCs||j|_|jdur|j |j¡|jr|j tjtjd¡|j  d|j ¡|_ |j dkr3t |jƒ|_dS|j  d|j ¡|_dS)NTÚrbrÚwb)rDZ connectionr7Z settimeoutÚdisable_nagle_algorithmr^r6Z IPPROTO_TCPZ TCP_NODELAYZmakefileÚrbufsizeÚrfileÚwbufsizeÚ _SocketWriterÚwfiler#rrrr¡s  ÿ zStreamRequestHandler.setupcCsD|jjsz|j ¡Wn tjyYnw|j ¡|j ¡dSr")r«ÚclosedÚflushr6Úerrorr`r¨r#rrrr£#sý zStreamRequestHandler.finish) rUrVrWr§r©r7r¦r¡r£rrrrr s  r c@rŸ) rªcCs ||_dSr")Ú_sock)rZsockrrrr 3ó z_SocketWriter.__init__cCsdSr3rr#rrrÚwritable6rRz_SocketWriter.writablecCs>|j |¡t|ƒ� }|jWdƒS1swYdSr")r¯ZsendallÚ memoryviewÚnbytes)rÚbZviewrrrÚwrite9s  $ÿz_SocketWriter.writecCs |j ¡Sr")r¯rbr#rrrrb>r°z_SocketWriter.filenoN)rUrVrWr r±rµrbrrrrrª.s  rªc@r�)r cCs2ddlm}|j\|_|_||jƒ|_|ƒ|_dS)Nr)ÚBytesIO)Úior¶rDZpacketr6r¨r«)rr¶rrrr¡Es   zDatagramRequestHandler.setupcCs|j |j ¡|j¡dSr")r6Zsendtor«ÚgetvaluerEr#rrrr£KrŽzDatagramRequestHandler.finishN)rUrVrWr¡r£rrrrr As r )$Ú __version__r6r*rorMrr·rr9rÚ__all__ÚhasattrÚextendrr(ZSelectSelectorrrrrÚlistrƒr�r rrrrrrrrr r rªr rrrrÚsPz     n~ X ( .-