a ÕDOg†Nã@sbddlZddlZddlZddlZddlZddlZddlmZmZm Z m Z m Z m Z m Z mZmZmZmZmZmZee e e eeehƒZzeWneyžiZYn0dd„ZGdd„deƒZeeefZdd„Zd d „Zd d „Z d d„Z!d%dd„Z"d&dd„Z#e#Z$d'dd„Z%Gdd„dƒZ&Gdd„de&ƒZ'dd„Z(d(dd„Z)ej*d kr^Gd!d"„d"ƒZ+Gd#d$„d$e&ƒZ,dS))éN) ÚEALREADYÚ EINPROGRESSÚ EWOULDBLOCKÚ ECONNRESETÚEINVALÚENOTCONNÚ ESHUTDOWNÚEISCONNÚEBADFÚ ECONNABORTEDÚEPIPEÚEAGAINÚ errorcodec CsFz t |¡WStttfy@|tvr4t|YSd|YS0dS)NzUnknown error %s)ÚosÚstrerrorÚ ValueErrorÚ OverflowErrorÚ NameErrorr)Úerr©rú-/opt/alt/python39/lib64/python3.9/asyncore.pyÚ _strerrorDs   rc@s eZdZdS)ÚExitNowN)Ú__name__Ú __module__Ú __qualname__rrrrrLsrcCs8z | ¡Wn&ty ‚Yn| ¡Yn0dS©N)Úhandle_read_eventÚ_reraised_exceptionsÚ handle_error©ÚobjrrrÚreadQs   r"cCs8z | ¡Wn&ty ‚Yn| ¡Yn0dSr)Úhandle_write_eventrrr rrrÚwriteYs   r$cCs8z | ¡Wn&ty ‚Yn| ¡Yn0dSr)Úhandle_expt_eventrrr rrrÚ _exceptionas   r&c CsÆzX|tj@r| ¡|tj@r&| ¡|tj@r8| ¡|tjtjBtj B@rV|  ¡Wnht yœ}z,|j dt vr€| ¡n|  ¡WYd}~n.d}~0ty®‚Yn| ¡Yn0dS©Nr)ÚselectÚPOLLINrÚPOLLOUTr#ÚPOLLPRIr%ZPOLLHUPZPOLLERRZPOLLNVALÚ handle_closeÚOSErrorÚargsÚ _DISCONNECTEDrr)r!ÚflagsÚerrrÚ readwriteis"      r2çc Cs<|dur t}|r8g}g}g}t| ¡ƒD]L\}}| ¡}| ¡}|rP| |¡|rd|jsd| |¡|sl|r*| |¡q*g|kr–|kr–|kr¨nnt |¡dSt   ||||¡\}}}|D] }|  |¡}|durÚqÂt |ƒqÂ|D]"}|  |¡}|durqèt |ƒqè|D]&}|  |¡}|dur,qt |ƒqdSr)Ú socket_mapÚlistÚitemsÚreadableÚwritableÚappendÚ acceptingÚtimeÚsleepr(Úgetr"r$r&) ÚtimeoutÚmapÚrÚwr1Úfdr!Zis_rZis_wrrrÚpoll}s@     "        rCcCsÀ|dur t}|dur t|dƒ}t ¡}|r¼t| ¡ƒD]L\}}d}| ¡r\|tjtjBO}|  ¡rt|j st|tj O}|r8|  ||¡q8| |¡}|D]&\}}|  |¡}|dur°q”t||ƒq”dS)Nièr)r4Úintr(rCr5r6r7r)r+r8r:r*Úregisterr=r2)r>r?ZpollsterrBr!r0r@rrrÚpoll2¤s(     rFç>@FcCsb|dur t}|r ttdƒr t}nt}|dur>|r^|||ƒq,n |r^|dkr^|||ƒ|d}q>dS)NrCré)r4Úhasattrr(rFrC)r>Zuse_pollr?ÚcountZpoll_funrrrÚloopÀs  rKc@s2eZdZdZdZdZdZdZdZe dhƒZ dAdd„Z dd„Z dBdd „Z dCd d „Zejejfd d „ZdDdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zd d!„Zd"d#„Zd$d%„ZdEd'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)FÚ dispatcherFNÚwarningc Cs¢|durt|_n||_d|_|r˜| d¡| ||¡d|_z| ¡|_Wqžty”}z2|j dt t fvrtd|_n |  |¡‚WYd}~qžd}~00nd|_ dS)NFTr)r4Ú_mapÚ_filenoÚ setblockingÚ set_socketÚ connectedZ getpeernameÚaddrr-r.rrÚ del_channelÚsocket)ÚselfÚsockr?rrrrÚ__init__Üs    zdispatcher.__init__cCs–|jjd|jjg}|jr.|jr.| d¡n|jr>| d¡|jdur€z| d|j¡Wn"ty~| t|jƒ¡Yn0dd  |¡t |ƒfS)NÚ.Z listeningrRz%s:%dz <%s at %#x>ú ) Ú __class__rrr:rSr9rRÚ TypeErrorÚreprÚjoinÚid)rVZstatusrrrÚ__repr__üs     zdispatcher.__repr__cCs|dur|j}|||j<dSr)rNrO)rVr?rrrÚ add_channel szdispatcher.add_channelcCs,|j}|dur|j}||vr"||=d|_dSr)rOrN)rVr?rBrrrrTs zdispatcher.del_channelcCs.||f|_t ||¡}| d¡| |¡dS)NF)Zfamily_and_typerUrPrQ)rVZfamilyÚtyperWrrrÚ create_sockets   zdispatcher.create_socketcCs||_| ¡|_| |¡dSr)rUÚfilenorOra©rVrWr?rrrrQs zdispatcher.set_socketcCsBz*|j tjtj|j tjtj¡dB¡Wnty<Yn0dS)NrH)rUZ setsockoptÚ SOL_SOCKETZ SO_REUSEADDRÚ getsockoptr-©rVrrrÚset_reuse_addr#s ÿÿþ zdispatcher.set_reuse_addrcCsdS©NTrrhrrrr74szdispatcher.readablecCsdSrjrrhrrrr87szdispatcher.writablecCs(d|_tjdkr|dkrd}|j |¡S)NTÚnté)r:rÚnamerUÚlisten)rVZnumrrrrn>szdispatcher.listencCs||_|j |¡Sr)rSrUÚbind)rVrSrrrroDszdispatcher.bindcCspd|_d|_|j |¡}|tttfvs8|tkrBtj dkrB||_ dS|dt fvr^||_ |  ¡nt |t|ƒ‚dS)NFTrkr)rRÚ connectingrUZ connect_exrrrrrrmrSr Úhandle_connect_eventr-r)rVZaddressrrrrÚconnectHs ÿÿ  zdispatcher.connectc Cszz|j ¡\}}WnZty&YdStyl}z0|jdtttfvrVWYd}~dS‚WYd}~nd}~00||fSdSr')rUÚacceptr\r-r.rr r )rVZconnrSÚwhyrrrrsVs zdispatcher.acceptc Cs~z|j |¡}|WStyx}zN|jdtkr>WYd}~dS|jdtvrb| ¡WYd}~dS‚WYd}~n d}~00dSr')rUÚsendr-r.rr/r,)rVÚdataÚresultrtrrrruds zdispatcher.sendc Csxz(|j |¡}|s | ¡WdS|WSWnJtyr}z2|jdtvr\| ¡WYd}~dS‚WYd}~n d}~00dS)Nór)rUÚrecvr,r-r.r/)rVZ buffer_sizervrtrrrryqs  zdispatcher.recvc Cspd|_d|_d|_| ¡|jdurlz|j ¡Wn8tyj}z |jdtt fvrV‚WYd}~n d}~00dS)NFr) rRr:rprTrUÚcloser-r.rr )rVrtrrrrzƒs zdispatcher.closecCstj dt|ƒ¡dS)Nzlog: %s )ÚsysÚstderrr$Ústr)rVÚmessagerrrÚlog“szdispatcher.logÚinfocCs||jvrtd||fƒdS)Nz%s: %s)Úignore_log_typesÚprint)rVr~rbrrrÚlog_info–s zdispatcher.log_infocCs:|jr| ¡n&|js.|jr$| ¡| ¡n| ¡dSr)r:Ú handle_acceptrRrprqÚ handle_readrhrrrršs  zdispatcher.handle_read_eventcCs@|j tjtj¡}|dkr(t|t|ƒƒ‚| ¡d|_d|_dS)NrTF) rUrgrfÚSO_ERRORr-rÚhandle_connectrRrp©rVrrrrrq¦s zdispatcher.handle_connect_eventcCs*|jr dS|js|jr| ¡| ¡dSr)r:rRrprqÚ handle_writerhrrrr#®s zdispatcher.handle_write_eventcCs0|j tjtj¡}|dkr$| ¡n| ¡dSr')rUrgrfr†r,Ú handle_exptrˆrrrr%¹s zdispatcher.handle_expt_eventcCsXtƒ\}}}}z t|ƒ}Wndt|ƒ}Yn0| d||||fd¡| ¡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,)rVZnilÚtÚvÚtbinfoZ self_reprrrrrÈs üù zdispatcher.handle_errorcCs| dd¡dS)Nz!unhandled incoming priority eventrM©rƒrhrrrrŠÜszdispatcher.handle_exptcCs| dd¡dS)Nzunhandled read eventrMrrhrrrr…ßszdispatcher.handle_readcCs| dd¡dS)Nzunhandled write eventrMrrhrrrr‰âszdispatcher.handle_writecCs| dd¡dS)Nzunhandled connect eventrMrrhrrrr‡åszdispatcher.handle_connectcCs| ¡}|dur|j|ŽdSr)rsÚhandle_accepted)rVZpairrrrr„èszdispatcher.handle_acceptcCs| ¡| dd¡dS)Nzunhandled accepted eventrM)rzrƒ)rVrWrSrrrr‘íszdispatcher.handle_acceptedcCs| dd¡| ¡dS)Nzunhandled close eventrM)rƒrzrhrrrr,ñs zdispatcher.handle_close)NN)N)N)N)r€),rrrÚdebugrRr:rpÚclosingrSÚ frozensetrrXr`rarTrUZAF_INETZ SOCK_STREAMrcrQrir7r8rnrorrrsruryrzrrƒrrqr#r%rrŠr…r‰r‡r„r‘r,rrrrrLÒsJ         rLc@s6eZdZd dd„Zdd„Zdd„Zdd „Zd d „ZdS) Údispatcher_with_sendNcCst |||¡d|_dS)Nrx)rLrXÚ out_bufferrerrrrXüszdispatcher_with_send.__init__cCs.d}t ||jdd…¡}|j|d…|_dS)Nri)rLrur–)rVZnum_sentrrrÚ initiate_sendsz"dispatcher_with_send.initiate_sendcCs | ¡dSr)r—rhrrrr‰sz!dispatcher_with_send.handle_writecCs|j pt|jƒSr)rRÚlenr–rhrrrr8szdispatcher_with_send.writablecCs0|jr| dt|ƒ¡|j||_| ¡dS)Nz sending %s)r’rƒr]r–r—)rVrvrrrru s zdispatcher_with_send.send)NN)rrrrXr—r‰r8rurrrrr•ús  r•cCs‚t ¡\}}}g}|stdƒ‚|rL| |jjj|jjjt|j ƒf¡|j }q~|d\}}}d  dd„|Dƒ¡}|||f|||fS)Nztraceback does not existéÿÿÿÿrZcSsg|] }d|‘qS)z [%s|%s|%s]r)Ú.0ÚxrrrÚ &rxz%compact_traceback..) r{Úexc_infoÚAssertionErrorr9Útb_frameÚf_codeÚ co_filenameÚco_namer}Ú tb_linenoÚtb_nextr^)rrŽÚtbrÚfileZfunctionÚliner€rrrrŒsýrŒc Cs”|dur t}t| ¡ƒD]n}z | ¡Wqtyb}z"|jdtkrHn|sN‚WYd}~qd}~0tyt‚Yq|s€‚Yq0q| ¡dSr') r4r5Úvaluesrzr-r.r rÚclear)r?Z ignore_allr›rrrÚ close_all)s    rªÚposixc@sNeZdZdd„Zdd„Zdd„Zdd„Zdd d „ZeZeZ d d „Z dd„Z d S)Ú file_wrappercCst |¡|_dSr)rÚduprB©rVrBrrrrXNszfile_wrapper.__init__cCs*|jdkrtjd|t|d| ¡dS)Nrzunclosed file %r)Úsource)rBÚwarningsÚwarnÚResourceWarningrzrhrrrÚ__del__Qs   ÿzfile_wrapper.__del__cGstj|jg|¢RŽSr)rr"rB©rVr.rrrryWszfile_wrapper.recvcGstj|jg|¢RŽSr)rr$rBr´rrrruZszfile_wrapper.sendNcCs(|tjkr|tjkr|sdStdƒ‚dS)Nrz-Only asyncore specific behaviour implemented.)rUrfr†ÚNotImplementedError)rVÚlevelZoptnameZbuflenrrrrg]s ÿþzfile_wrapper.getsockoptcCs(|jdkrdS|j}d|_t |¡dS)Nrr™)rBrrzr®rrrrzhs  zfile_wrapper.closecCs|jSr)rBrhrrrrdoszfile_wrapper.fileno)N) rrrrXr³ryrurgr"r$rzrdrrrrr¬Is r¬c@seZdZddd„Zdd„ZdS)Úfile_dispatcherNcCsNt |d|¡d|_z | ¡}Wnty2Yn0| |¡t |d¡dS)NTF)rLrXrRrdÚAttributeErrorÚset_filerÚ set_blocking)rVrBr?rrrrXts   zfile_dispatcher.__init__cCs"t|ƒ|_|j ¡|_| ¡dSr)r¬rUrdrOrar®rrrr¹s  zfile_dispatcher.set_file)N)rrrrXr¹rrrrr·rs r·)r3N)r3N)rGFNN)NF)-r(rUr{r;r°rÚerrnorrrrrrrr r r r r rr”r/r4rrÚ ExceptionrÚKeyboardInterruptÚ SystemExitrr"r$r&r2rCrFZpoll3rKrLr•rŒrªrmr¬r·rrrrÚ1sB< ÿ    '  *  )