grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026 й¼]ˆNã@sddlZddlZddlZddlZddlZddlZddlmZmZm Z m Z m Z m Z m Z mZmZmZmZmZmZee e e eeehƒZyeWnek ràiZYnXdd„ZGdd„deƒZeeefZdd„Zd d „Zd d „Z d d„Z!dddd„Z"dddd„Z#e#Z$dddddd„Z%Gdd„dƒZ&Gdd„de&ƒZ'dd„Z(dddd„Z)ej*d krGd!d"„d"ƒZ+Gd#d$„d$e&ƒZ,dS)%éN) ÚEALREADYÚ EINPROGRESSÚ EWOULDBLOCKÚ ECONNRESETÚEINVALÚENOTCONNÚ ESHUTDOWNÚEISCONNÚEBADFÚ ECONNABORTEDÚEPIPEÚEAGAINÚ errorcodec CsOytj|ƒSWn7tttfk rJ|tkr>t|Sd|SYnXdS)NzUnknown error %s)ÚosÚstrerrorÚ ValueErrorÚ OverflowErrorÚ NameErrorr)Úerr©rú-/opt/alt/python35/lib64/python3.5/asyncore.pyÚ _strerrorDs  rc@seZdZdS)ÚExitNowN)Ú__name__Ú __module__Ú __qualname__rrrrrLs rc Cs;y|jƒWn&tk r%‚Yn|jƒYnXdS)N)Úhandle_read_eventÚ_reraised_exceptionsÚ handle_error)ÚobjrrrÚreadQs  r c Cs;y|jƒWn&tk r%‚Yn|jƒYnXdS)N)Úhandle_write_eventrr)rrrrÚwriteYs  r"c Cs;y|jƒWn&tk r%‚Yn|jƒYnXdS)N)Úhandle_expt_eventrr)rrrrÚ _exceptionas  r$cCséyn|tj@r|jƒ|tj@r1|jƒ|tj@rH|jƒ|tjtjBtj B@rm|j ƒWntt k r¿}z/|j dt kr£|jƒn |j ƒWYdd}~Xn&tk rÓ‚Yn|jƒYnXdS)Nr)ÚselectÚPOLLINrÚPOLLOUTr!ÚPOLLPRIr#ÚPOLLHUPÚPOLLERRÚPOLLNVALÚ handle_closeÚOSErrorÚargsÚ _DISCONNECTEDrr)rÚflagsÚerrrÚ readwriteis"        r2gc Cs¶|dkrt}|r²g}g}g}x�t|jƒƒD]m\}}|jƒ}|jƒ}|rt|j|ƒ|r‘|j r‘|j|ƒ|s�|r=|j|ƒq=Wg|koÐ|koÐ|knrætj|ƒdSt j ||||ƒ\}}}x6|D].}|j |ƒ}|dkr2qt |ƒqWx6|D].}|j |ƒ}|dkrkqGt |ƒqGWx6|D].}|j |ƒ}|dkr¤q€t |ƒq€WdS)N)Ú socket_mapÚlistÚitemsÚreadableÚwritableÚappendÚ acceptingÚtimeÚsleepr%Úgetr r"r$) ÚtimeoutÚmapÚrÚwr1ÚfdrZis_rZis_wrrrÚpoll}sD      ' !      rBcCs|dkrt}|dk r.t|dƒ}tjƒ}|rxt|jƒƒD]k\}}d}|jƒr…|tjtjBO}|j ƒr¨|j r¨|tj O}|rS|j ||ƒqSW|j|ƒ}x?|D]7\}}|j |ƒ}|dkrqØt||ƒqØWdS)Nièr)r3Úintr%rBr4r5r6r&r(r7r9r'Úregisterr<r2)r=r>ZpollsterrArr0r?rrrÚpoll2¤s(      rEg>@FcCs“|dkrt}|r0ttdƒr0t}nt}|dkr_xJ|r[|||ƒqEWn0x-|rŽ|dkrŽ|||ƒ|d}qbWdS)NrBré)r3Úhasattrr%rErB)r=Zuse_pollr>ÚcountZpoll_funrrrÚloopÀs     rIc@sÏeZdZdZdZdZdZdZdZe dhƒZ dddd„Z dd„Z e Z ddd „Zdd d „Zejejd d „Zddd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zd d!„Zd"d#„Zd$d%„Zd&d'd(„Z d)d*„Z!d+d,„Z"d-d.„Z#d/d0„Z$d1d2„Z%d3d4„Z&d5d6„Z'd7d8„Z(d9d:„Z)d;d<„Z*d=d>„Z+d?d@„Z,dS)AÚ dispatcherFNÚwarningcCsÖ|dkrt|_n ||_d|_|rÉ|jdƒ|j||ƒd|_y|jƒ|_WqÒtk rÅ}z:|j dt t fkr£d|_n|j |ƒ‚WYdd}~XqÒXn d|_ dS)NrTF)r3Ú_mapÚ_filenoÚ setblockingÚ set_socketÚ connectedÚ getpeernameÚaddrr-r.rrÚ del_channelÚsocket)ÚselfÚsockr>rrrrÚ__init__Üs         zdispatcher.__init__c CsÄ|jjd|jjg}|jr?|jr?|jdƒn|jrU|jdƒ|jdk r§y|jd|jƒWn(tk r¦|jt|jƒƒYnXddj |ƒt |ƒfS)NÚ.Z listeningrPz%s:%dz <%s at %#x>ú ) Ú __class__rrr9rRr8rPÚ TypeErrorÚreprÚjoinÚid)rUÚstatusrrrÚ__repr__üs   zdispatcher.__repr__cCs&|dkr|j}|||jrrrÚ add_channel s  zdispatcher.add_channelcCs>|j}|dkr|j}||kr1||=d|_dS)N)rMrL)rUr>rArrrrSs     zdispatcher.del_channelcCs?||f|_tj||ƒ}|jdƒ|j|ƒdS)Nr)Zfamily_and_typerTrNrO)rUÚfamilyÚtyperVrrrÚ create_sockets zdispatcher.create_socketcCs)||_|jƒ|_|j|ƒdS)N)rTÚfilenorMra)rUrVr>rrrrO s zdispatcher.set_socketc CsRy9|jjtjtj|jjtjtjƒdBƒWntk rMYnXdS)NrF)rTÚ setsockoptÚ SOL_SOCKETÚ SO_REUSEADDRÚ getsockoptr-)rUrrrÚset_reuse_addr&s   zdispatcher.set_reuse_addrcCsdS)NTr)rUrrrr67szdispatcher.readablecCsdS)NTr)rUrrrr7:szdispatcher.writablecCs:d|_tjdkr*|dkr*d}|jj|ƒS)NTÚnté)r9rÚnamerTÚlisten)rUÚnumrrrrnAs zdispatcher.listencCs||_|jj|ƒS)N)rRrTÚbind)rUrRrrrrpGs zdispatcher.bindcCs d|_d|_|jj|ƒ}|tttfksT|tkratj dkra||_ dS|dt fkr‰||_ |j ƒnt |t|ƒ‚dS)NFTrkÚcer)rkrq)rPÚ connectingrTÚ connect_exrrrrrrmrRr Úhandle_connect_eventr-r)rUÚaddressrrrrÚconnectKs     zdispatcher.connectcCs‡y|jjƒ\}}Wn]tk r1dSYnRtk rx}z(|jdtttfkrcdS‚WYdd}~Xn X||fSdS)Nr)rTÚacceptr[r-r.rr r )rUÚconnrRÚwhyrrrrwYs zdispatcher.acceptcCs�y|jj|ƒ}|SWn`tk r|}z@|jdtkrFdS|jdtkrg|jƒdS‚WYdd}~XnXdS)Nr)rTÚsendr-r.rr/r,)rUÚdataÚresultryrrrrzgs zdispatcher.sendcCs~y.|jj|ƒ}|s)|jƒdS|SWnItk ry}z)|jdtkrd|jƒdS‚WYdd}~XnXdS)Nór)rTÚrecvr,r-r.r/)rUZ buffer_sizer{ryrrrr~ts  zdispatcher.recvcCs�d|_d|_d|_|jƒ|jdk r‰y|jjƒWnAtk rˆ}z!|jdtt fkrv‚WYdd}~XnXdS)NFr) rPr9rrrSrTÚcloser-r.rr )rUryrrrr†s    zdispatcher.closecCstjjdt|ƒƒdS)Nzlog: %s )ÚsysÚstderrr"Ústr)rUÚmessagerrrÚlog–szdispatcher.logÚinfocCs'||jkr#td||fƒdS)Nz%s: %s)Úignore_log_typesÚprint)rUrƒrcrrrÚlog_info™szdispatcher.log_infocCsM|jr|jƒn3|js?|jr2|jƒ|jƒn |jƒdS)N)r9Ú handle_acceptrPrrrtÚ handle_read)rUrrrr�s      zdispatcher.handle_read_eventcCs\|jjtjtjƒ}|dkr<t|t|ƒƒ‚|jƒd|_d|_dS)NrTF) rTrirgÚSO_ERRORr-rÚhandle_connectrPrr)rUrrrrrt©s    zdispatcher.handle_connect_eventcCs7|jr dS|js)|jr)|jƒ|jƒdS)N)r9rPrrrtÚ handle_write)rUrrrr!±s     zdispatcher.handle_write_eventcCsB|jjtjtjƒ}|dkr4|jƒn |jƒdS)Nr)rTrirgr‹r,Ú handle_expt)rUrrrrr#¼s  zdispatcher.handle_expt_eventc Csntƒ\}}}}yt|ƒ}Wndt|ƒ}YnX|jd||||fdƒ|jƒdS)Nz)<__repr__(self) failed for object at %0x>z:uncaptured python exception, closing channel %s (%s:%s %s)Úerror)Úcompact_tracebackr\r^rˆr,)rUÚnilÚtÚvÚtbinfoZ self_reprrrrrËszdispatcher.handle_errorcCs|jddƒdS)Nz!unhandled incoming priority eventrK)rˆ)rUrrrrŽßszdispatcher.handle_exptcCs|jddƒdS)Nzunhandled read eventrK)rˆ)rUrrrrŠâszdispatcher.handle_readcCs|jddƒdS)Nzunhandled write eventrK)rˆ)rUrrrr�åszdispatcher.handle_writecCs|jddƒdS)Nzunhandled connect eventrK)rˆ)rUrrrrŒèszdispatcher.handle_connectcCs)|jƒ}|dk r%|j|ŒdS)N)rwÚhandle_accepted)rUZpairrrrr‰ës  zdispatcher.handle_acceptcCs|jƒ|jddƒdS)Nzunhandled accepted eventrK)rrˆ)rUrVrRrrrr•ðs zdispatcher.handle_acceptedcCs|jddƒ|jƒdS)Nzunhandled close eventrK)rˆr)rUrrrr,ôszdispatcher.handle_close)-rrrÚdebugrPr9rrÚclosingrRÚ frozensetr†rWr`Ú__str__rarSrTÚAF_INETÚ SOCK_STREAMrdrOrjr6r7rnrprvrwrzr~rr„rˆrrtr!r#rrŽrŠr�rŒr‰r•r,rrrrrJÒsL                      rJc@sReZdZdddd„Zdd„Zdd„Zdd „Zd d „ZdS) Údispatcher_with_sendNcCs tj|||ƒd|_dS)Nr})rJrWÚ out_buffer)rUrVr>rrrrWÿszdispatcher_with_send.__init__cCs?d}tj||jdd…ƒ}|j|d…|_dS)Nri)rJrzr�)rUZnum_sentrrrÚ initiate_sendsz"dispatcher_with_send.initiate_sendcCs|jƒdS)N)rž)rUrrrr�sz!dispatcher_with_send.handle_writecCs|j pt|jƒS)N)rPÚlenr�)rUrrrr7 szdispatcher_with_send.writablecCs>|jr |jdt|ƒƒ|j||_|jƒdS)Nz sending %s)r–rˆr\r�rž)rUr{rrrrzs zdispatcher_with_send.send)rrrrWržr�r7rzrrrrrœýs    rœcCs¿tjƒ\}}}g}|s-tdƒ‚xD|rs|j|jjj|jjjt|j ƒfƒ|j }q0W~|d\}}}dj dd„|Dƒƒ}|||f|||fS)Nztraceback does not existrFrYcSsg|]}d|‘qS)z [%s|%s|%s]r)Ú.0Úxrrrú )s z%compact_traceback..éÿÿÿÿ) r€Úexc_infoÚAssertionErrorr8Útb_frameÚf_codeÚ co_filenameÚco_namer‚Ú tb_linenoÚtb_nextr])r’r“Útbr”ÚfileÚfunctionÚliner…rrrr�s     r�cCs¶|dkrt}x“t|jƒƒD]}y|jƒWq%tk r}z$|jdtkrdn |sm‚WYdd}~Xq%tk r“‚Yq%|sŸ‚Yq%Xq%W|jƒdS)Nr) r3r4Úvaluesrr-r.r rÚclear)r>Z ignore_allr¡rrrÚ close_all,s    r²Úposixc@sseZdZdd„Zdd„Zdd„Zdd„Zd d d „ZeZeZ d d „Z dd„Z d S)Ú file_wrappercCstj|ƒ|_dS)N)rÚduprA)rUrArrrrWQszfile_wrapper.__init__cCs1|jdkr#tjd|tƒ|jƒdS)Nrzunclosed file %r)rAÚwarningsÚwarnÚResourceWarningr)rUrrrÚ__del__Tszfile_wrapper.__del__cGstj|j|ŒS)N)rr rA)rUr.rrrr~Yszfile_wrapper.recvcGstj|j|ŒS)N)rr"rA)rUr.rrrrz\szfile_wrapper.sendNcCs9|tjkr)|tjkr)| r)dStdƒ‚dS)Nrz-Only asyncore specific behaviour implemented.)rTrgr‹ÚNotImplementedError)rUÚlevelZoptnameÚbuflenrrrri_s zfile_wrapper.getsockoptcCs0|jdkrdStj|jƒd|_dS)NrrFr£)rArr)rUrrrrjszfile_wrapper.closecCs|jS)N)rA)rUrrrrepszfile_wrapper.fileno) rrrrWr¹r~rzrir r"rrerrrrr´Ls      r´c@s+eZdZddd„Zdd„ZdS)Úfile_dispatcherNc Csbtj|d|ƒd|_y|jƒ}Wntk r@YnX|j|ƒtj|dƒdS)NTF)rJrWrPreÚAttributeErrorÚset_filerÚ set_blocking)rUrAr>rrrrWus   zfile_dispatcher.__init__cCs/t|ƒ|_|jjƒ|_|jƒdS)N)r´rTrerMra)rUrArrrr¿€szfile_dispatcher.set_file)rrrrWr¿rrrrr½ss  r½)-r%rTr€r:r¶rÚerrnorrrrrrrr r r r r rr˜r/r3rrÚ ExceptionrÚKeyboardInterruptÚ SystemExitrr r"r$r2rBrEZpoll3rIrJrœr�r²rmr´r½rrrrÚ1s>      X        'ÿ, '