o 0¦i,Oã@sv ddlZddlZddlZddlZddlZddlZddlmZmZm Z m Z m Z m Z m Z mZmZmZmZmZmZejdedd�ee e e eeehƒZzeWn eyXiZYnwdd„ZGdd „d eƒZeeefZd d „Z d d „Z!dd„Z"dd„Z#d(dd„Z$d(dd„Z%e%Z&d)dd„Z'Gdd„dƒZ(Gdd„de(ƒZ)dd „Z*d*d!d"„Z+ej,d#kr¹Gd$d%„d%ƒZ-Gd&d'„d'e(ƒZ.dSdS)+éN) ÚEALREADYÚ EINPROGRESSÚ EWOULDBLOCKÚ ECONNRESETÚEINVALÚENOTCONNÚ ESHUTDOWNÚEISCONNÚEBADFÚ ECONNABORTEDÚEPIPEÚEAGAINÚ errorcodezlThe asyncore module is deprecated and will be removed in Python 3.12. The recommended replacement is asyncioé)Ú stacklevelc CsBzt |¡WStttfy |tvrt|YSd|YSw)NzUnknown error %s)ÚosÚstrerrorÚ ValueErrorÚ OverflowErrorÚ NameErrorr)Úerr©rú//opt/alt/python310/lib64/python3.10/asyncore.pyÚ _strerrorKs   ýrc@s eZdZdS)ÚExitNowN)Ú__name__Ú __module__Ú __qualname__rrrrrSsrcCó2z| ¡WdSty‚| ¡YdS©N)Úhandle_read_eventÚ_reraised_exceptionsÚ handle_error©ÚobjrrrÚreadXó  r%cCrr)Úhandle_write_eventr!r"r#rrrÚwrite`r&r(cCrr)Úhandle_expt_eventr!r"r#rrrÚ _exceptionhr&r*c CsÒz0|tj@r | ¡|tj@r| ¡|tj@r| ¡|tjtjBtj B@r.|  ¡WdSWdSt yX}z|j t vrB| ¡n |  ¡WYd}~dSWYd}~dSd}~wty_‚| ¡YdSr)ÚselectÚPOLLINr ÚPOLLOUTr'ÚPOLLPRIr)ZPOLLHUPZPOLLERRZPOLLNVALÚ handle_closeÚOSErrorÚerrnoÚ _DISCONNECTEDr"r!)r$ÚflagsÚerrrÚ readwriteps(   ÿ  þ€ r5çc Cs6|durt}|r—g}g}g}t| ¡ƒD]&\}}| ¡}| ¡}|r'| |¡|r1|js1| |¡|s5|r:| |¡qg|krJ|krJ|krSnnt |¡dSt   ||||¡\}}}|D]}|  |¡}|durlq`t |ƒq`|D]}|  |¡}|durqst |ƒqs|D]}|  |¡}|dur’q†t |ƒq†dSdSr)Ú socket_mapÚlistÚitemsÚreadableÚwritableÚappendÚ acceptingÚtimeÚsleepr+Úgetr%r(r*) ÚtimeoutÚmapÚrÚwr4Úfdr$Zis_rZis_wrrrÚpoll„sF     €"       ÞrFcCsÄ|durt}|durt|dƒ}t ¡}|r^t| ¡ƒD]&\}}d}| ¡r.|tjtjBO}|  ¡r:|j s:|tj O}|rB|  ||¡q| |¡}|D]\}}|  |¡}|durXqJt||ƒqJdSdS)Nièr)r7Úintr+rFr8r9r:r,r.r;r=r-Úregisterr@r5)rArBZpollsterrEr$r3rCrrrÚpoll2«s.   €    ð rIç>@FcCs€|durt}|rttdƒrt}nt}|dur#|r!|||ƒ|sdSdS|r:|dkr>|||ƒ|d}|r<|dks)dSdSdSdS)NrFré)r7Úhasattrr+rIrF)rAZuse_pollrBÚcountZpoll_funrrrÚloopÇs  ÿ  þrNc@s2eZdZdZdZdZdZdZdZe dhƒZ dAdd„Z dd„Z dBdd „Z dBd d „Zejejfd d „ZdBdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zd d!„Zd"d#„Zd$d%„ZdCd'd(„Zd)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)DÚ dispatcherFNÚwarningc Cs |durt|_n||_d|_|rK| d¡| ||¡d|_z| ¡|_WdStyJ}z|j t t fvr9d|_n|  |¡‚WYd}~dSd}~wwd|_ dS)NFT)r7Ú_mapÚ_filenoÚ setblockingÚ set_socketÚ connectedZ getpeernameÚaddrr0r1rrÚ del_channelÚsocket)ÚselfÚsockrBrrrrÚ__init__ãs&   ú€ü zdispatcher.__init__cCs–|jjd|jjg}|jr|jr| d¡n|jr| d¡|jdur@z | d|j¡Wnty?| t|jƒ¡Ynwdd  |¡t |ƒfS)NÚ.Z listeningrUz%s:%dz <%s at %#x>ú ) Ú __class__rrr=rVr<rUÚ TypeErrorÚreprÚjoinÚid)rYZstatusrrrÚ__repr__s     ÿzdispatcher.__repr__cCs|dur|j}|||j<dSr)rQrR)rYrBrrrÚ add_channelszdispatcher.add_channelcCs,|j}|dur |j}||vr||=d|_dSr)rRrQ)rYrBrErrrrWs  zdispatcher.del_channelcCs.||f|_t ||¡}| d¡| |¡dS©NF)Zfamily_and_typerXrSrT)rYZfamilyÚtyperZrrrÚ create_sockets   zdispatcher.create_socketcCs||_| ¡|_| |¡dSr)rXÚfilenorRrd©rYrZrBrrrrT%s zdispatcher.set_socketcCsBz|j tjtj|j tjtj¡dB¡WdSty YdSw)NrK)rXZ setsockoptÚ SOL_SOCKETZ SO_REUSEADDRÚ getsockoptr0©rYrrrÚset_reuse_addr*s ÿÿ þ ÿzdispatcher.set_reuse_addrcCódS©NTrrlrrrr:;ózdispatcher.readablecCrnrorrlrrrr;>rpzdispatcher.writablecCs(d|_tjdkr|dkrd}|j |¡S)NTÚnté)r=rÚnamerXÚlisten)rYZnumrrrrtEs zdispatcher.listencCs||_|j |¡Sr)rVrXÚbind)rYrVrrrruKs zdispatcher.bindcCsnd|_d|_|j |¡}|tttfvs|tkr!tj dkr!||_ dS|dt fvr0||_ |  ¡dSt |t|ƒ‚)NFTrqr)rUÚ connectingrXZ connect_exrrrrrrsrVr Úhandle_connect_eventr0r)rYZaddressrrrrÚconnectOs   zdispatcher.connectc Csdz |j ¡\}}W||fStyYdSty1}z|jtttfvr,WYd}~dS‚d}~wwr)rXÚacceptr_r0r1rr r )rYZconnrVÚwhyrrrry]s ø€üzdispatcher.acceptc Csfz |j |¡}|WSty2}z|jtkrWYd}~dS|jtvr-| ¡WYd}~dS‚d}~ww©Nr)rXÚsendr0r1rr2r/)rYÚdataÚresultrzrrrr|ks   €ùzdispatcher.sendc Cs`z|j |¡}|s| ¡WdS|WSty/}z|jtvr*| ¡WYd}~dS‚d}~ww©Nó)rXÚrecvr/r0r1r2)rYZ buffer_sizer}rzrrrr�xs  €úzdispatcher.recvc Cspd|_d|_d|_| ¡|jdur6z|j ¡WdSty5}z|jtt fvr*‚WYd}~dSd}~wwdSre) rUr=rvrWrXÚcloser0r1rr )rYrzrrrr‚Šs ÿ€ÿýzdispatcher.closecCstj dt|ƒ¡dS)Nzlog: %s )ÚsysÚstderrr(Ústr)rYÚmessagerrrÚlogšszdispatcher.logÚinfocCs"||jvrtd||fƒdSdS)Nz%s: %s)Úignore_log_typesÚprint)rYr†rfrrrÚlog_info�s ÿzdispatcher.log_infocCs>|jr | ¡dS|js|jr| ¡| ¡dS| ¡dSr)r=Ú handle_acceptrUrvrwÚ handle_readrlrrrr ¡s   zdispatcher.handle_read_eventcCs@|j tjtj¡}|dkrt|t|ƒƒ‚| ¡d|_d|_dS)NrTF) rXrkrjÚSO_ERRORr0rÚhandle_connectrUrv©rYrrrrrw­s  zdispatcher.handle_connect_eventcCs*|jrdS|js|jr| ¡| ¡dSr)r=rUrvrwÚ handle_writerlrrrr'µs  zdispatcher.handle_write_eventcCs2|j tjtj¡}|dkr| ¡dS| ¡dSr{)rXrkrjrŽr/Ú handle_exptr�rrrr)Às  zdispatcher.handle_expt_eventcCsTtƒ\}}}}zt|ƒ}Wn dt|ƒ}Y| d||||fd¡| ¡dS)Nz)<__repr__(self) failed for object at %0x>z:uncaptured python exception, closing channel %s (%s:%s %s)Úerror)Úcompact_tracebackr`rbr‹r/)rYZnilÚtÚvÚtbinfoZ self_reprrrrr"Ïs üù zdispatcher.handle_errorcCó| dd¡dS)Nz!unhandled incoming priority eventrP©r‹rlrrrr’ãózdispatcher.handle_exptcCr˜)Nzunhandled read eventrPr™rlrrrr�æršzdispatcher.handle_readcCr˜)Nzunhandled write eventrPr™rlrrrr‘éršzdispatcher.handle_writecCr˜)Nzunhandled connect eventrPr™rlrrrr�ìršzdispatcher.handle_connectcCs"| ¡}|dur|j|ŽdSdSr)ryÚhandle_accepted)rYZpairrrrrŒïsÿzdispatcher.handle_acceptcCs| ¡| dd¡dS)Nzunhandled accepted eventrP)r‚r‹)rYrZrVrrrr›ôszdispatcher.handle_acceptedcCs| dd¡| ¡dS)Nzunhandled close eventrP)r‹r‚rlrrrr/øs  zdispatcher.handle_close©NNr)rˆ),rrrÚdebugrUr=rvÚclosingrVÚ frozensetr‰r[rcrdrWrXZAF_INETZ SOCK_STREAMrgrTrmr:r;rtrurxryr|r�r‚r‡r‹r rwr'r)r"r’r�r‘r�rŒr›r/rrrrrOÙsL         rOc@s6eZdZd dd„Zdd„Zdd„Zdd „Zd d „ZdS) Údispatcher_with_sendNcCst |||¡d|_dSr)rOr[Ú out_bufferrirrrr[s zdispatcher_with_send.__init__cCs.d}t ||jdd…¡}|j|d…|_dS)Nri)rOr|r¡)rYZnum_sentrrrÚ initiate_sendsz"dispatcher_with_send.initiate_sendcCs | ¡dSr)r¢rlrrrr‘ s z!dispatcher_with_send.handle_writecCs|j pt|jƒSr)rUÚlenr¡rlrrrr;szdispatcher_with_send.writablecCs0|jr | dt|ƒ¡|j||_| ¡dS)Nz sending %s)r�r‹r`r¡r¢)rYr}rrrr|s  zdispatcher_with_send.sendrœ)rrrr[r¢r‘r;r|rrrrr s   r cCs„t ¡\}}}g}|stdƒ‚|r'| |jjj|jjjt|j ƒf¡|j }|s~|d\}}}d  dd„|Dƒ¡}|||f|||fS)Nztraceback does not existéÿÿÿÿr]cSsg|]}d|‘qS)z [%s|%s|%s]r)Ú.0ÚxrrrÚ -sz%compact_traceback..) rƒÚexc_infoÚAssertionErrorr<Útb_frameÚf_codeÚ co_filenameÚco_namer…Ú tb_linenoÚtb_nextra)r•r–Útbr—ÚfileZfunctionÚlinerˆrrrr”s ýú r”c Csˆ|durt}t| ¡ƒD]1}z| ¡Wq ty/}z|jtkr"n|s%‚WYd}~q d}~wty6‚|s<‚Yq | ¡dSr) r7r8Úvaluesr‚r0r1r r!Úclear)rBZ ignore_allr¦rrrÚ close_all0s$  € ÿ rµÚposixc@sNeZdZdd„Zdd„Zdd„Zdd„Zdd d „ZeZeZ d d „Z dd„Z d S)Ú file_wrappercCst |¡|_dSr)rÚduprE©rYrErrrr[Uršzfile_wrapper.__init__cCs*|jdkrtjd|t|d�| ¡dS)Nrzunclosed file %r)Úsource)rEÚwarningsÚwarnÚResourceWarningr‚rlrrrÚ__del__Xs  ÿ zfile_wrapper.__del__cGótj|jg|¢RŽSr)rr%rE©rYÚargsrrrr�^ózfile_wrapper.recvcGr¿r)rr(rErÀrrrr|arÂzfile_wrapper.sendNcCs$|tjkr|tjkr|sdStdƒ‚)Nrz-Only asyncore specific behaviour implemented.)rXrjrŽÚNotImplementedError)rYÚlevelZoptnameZbuflenrrrrkds  ÿzfile_wrapper.getsockoptcCs(|jdkrdS|j}d|_t |¡dS)Nrr¤)rErr‚r¹rrrr‚os zfile_wrapper.closecCs|jSr)rErlrrrrhvszfile_wrapper.filenor) rrrr[r¾r�r|rkr%r(r‚rhrrrrr·Ps  r·c@seZdZddd„Zdd„ZdS)Úfile_dispatcherNcCsNt |d|¡d|_z| ¡}Wn tyYnw| |¡t |d¡dS)NTF)rOr[rUrhÚAttributeErrorÚset_filerÚ set_blocking)rYrErBrrrr[{s  ÿ zfile_dispatcher.__init__cCs"t|ƒ|_|j ¡|_| ¡dSr)r·rXrhrRrdr¹rrrrdžs   zfile_dispatcher.set_filer)rrrr[rÇrrrrrÅys  rÅ)r6N)rJFNNre)/r+rXrƒr>r»rr1rrrrrrrr r r r r rr¼ÚDeprecationWarningrŸr2r7rrÚ ExceptionrÚKeyboardInterruptÚ SystemExitr!r%r(r*r5rFrIZpoll3rNrOr r”rµrsr·rÅrrrrÚsT<ü ÿ ÿ   ' *  )Ö