ROOTPLOIT
Server: LiteSpeed
System: Linux server71.web-hosting.com 4.18.0-513.18.1.lve.el8.x86_64 #1 SMP Thu Feb 22 12:55:50 UTC 2024 x86_64
User: niphet (1079)
PHP: 5.3.29
Disabled: NONE
Upload Files
File: //lib64/python3.8/__pycache__/asyncore.cpython-38.pyc
U

e5d~Nã@shdZddlZddlZddlZddlZddlZddlZddlmZm	Z	m
Z
mZmZm
Z
mZmZmZmZmZmZmZeee
eeeehƒZzeWnek
r¤iZYnXdd„ZGdd„deƒZeeefZdd	„Zd
d„Z dd
„Z!dd„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!krdGd"d#„d#ƒZ,Gd$d%„d%e'ƒZ-dS)*a Basic infrastructure for asynchronous socket service clients and servers.

There are only two ways to have a program on a single processor do "more
than one thing at a time".  Multi-threaded programming is the simplest and
most popular way to do it, but there is another very different technique,
that lets you have nearly all the advantages of multi-threading, without
actually using multiple threads. it's really only practical if your program
is largely I/O bound. If your program is CPU bound, then pre-emptive
scheduled threads are probably what you really need. Network servers are
rarely CPU-bound, however.

If your operating system supports the select() system call in its I/O
library (and nearly all do), then you can use it to juggle multiple
communication channels at once; doing other work while your I/O is taking
place in the "background."  Although this strategy can seem strange and
complex, especially at first, it is in many ways easier to understand and
control than multi-threaded programming. The module documented here solves
many of the difficult problems for you, making the task of building
sophisticated high-performance network servers and clients a snap.
éN)
ÚEALREADYÚEINPROGRESSÚEWOULDBLOCKÚ
ECONNRESETÚEINVALÚENOTCONNÚ	ESHUTDOWNÚEISCONNÚEBADFÚECONNABORTEDÚEPIPEÚEAGAINÚ	errorcodec
CsHzt |¡WStttfk
rB|tkr6t|YSd|YSXdS)NzUnknown error %s)ÚosÚstrerrorÚ
ValueErrorÚ
OverflowErrorÚ	NameErrorr)Úerr©rú /usr/lib64/python3.8/asyncore.pyÚ	_strerrorDsrc@seZdZdS)ÚExitNowN)Ú__name__Ú
__module__Ú__qualname__rrrrrLsrcCs:z| ¡Wn(tk
r"‚Yn| ¡YnXdS©N)Úhandle_read_eventÚ_reraised_exceptionsÚhandle_error©ÚobjrrrÚreadQsr"cCs:z| ¡Wn(tk
r"‚Yn| ¡YnXdSr)Úhandle_write_eventrrr rrrÚwriteYsr$cCs:z| ¡Wn(tk
r"‚Yn| ¡YnXdSr)Úhandle_expt_eventrrr rrrÚ
_exceptionasr&c
CsÆzX|tj@r| ¡|tj@r&| ¡|tj@r8| ¡|tjtjBtj	B@rV| 
¡Wnhtk
rš}z$|jdt
kr‚| ¡n| 
¡W5d}~XYn(tk
r®‚Yn| ¡YnXdS©Nr)ÚselectÚPOLLINrÚPOLLOUTr#ÚPOLLPRIr%ZPOLLHUPZPOLLERRZPOLLNVALÚhandle_closeÚOSErrorÚargsÚ
_DISCONNECTEDrr)r!ÚflagsÚerrrÚ	readwriteis"



r2çc	Cs<|dkrt}|r8g}g}g}t| ¡ƒD]L\}}| ¡}| ¡}|rP| |¡|rd|jsd| |¡|sl|r*| |¡q*g|kr–|kr–|kr¨nnt |¡dSt	 	||||¡\}}}|D] }| 
|¡}|dkrÚqÂt|ƒqÂ|D]"}| 
|¡}|dkrqèt|ƒqè|D]&}| 
|¡}|dkr,qt
|ƒqdSr)Ú
socket_mapÚlistÚitemsÚreadableÚwritableÚappendÚ	acceptingÚtimeÚsleepr(Úgetr"r$r&)	ÚtimeoutÚmapÚrÚwr1Úfdr!Zis_rZis_wrrrÚpoll}sD


"







rCcCsÀ|dkrt}|dk	r t|dƒ}t ¡}|r¼t| ¡ƒD]L\}}d}| ¡r\|tjtjBO}| 	¡rt|j
st|tjO}|r8| ||¡q8| |¡}|D]&\}}| 
|¡}|dkr°q”t||ƒq”dS)Nièr)r4Úintr(rCr5r6r7r)r+r8r:r*Úregisterr=r2)r>r?ZpollsterrBr!r0r@rrrÚpoll2¤s(


rFç>@FcCsb|dkrt}|r ttdƒr t}nt}|dkr>|r^|||ƒq,n |r^|dkr^|||ƒ|d}q>dS)NrCré)r4Úhasattrr(rFrC)r>Zuse_pollr?ÚcountZpoll_funrrrÚloopÀs
rKc@s2eZdZdZdZdZdZdZdZe	dhƒZ
dAdd„Zdd„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 |dkrt|_n||_d|_|r–| d¡| ||¡d|_z| ¡|_Wqœtk
r’}z*|j	dt
tfkrvd|_n| |¡‚W5d}~XYqœXnd|_
dS©NrTF)r4Ú_mapÚ_filenoÚsetblockingÚ
set_socketÚ	connectedZgetpeernameÚaddrr-r.rrÚdel_channelÚsocket)ÚselfÚsockr?rrrrÚ__init__Üs 

zdispatcher.__init__cCs˜|jjd|jjg}|jr.|jr.| d¡n|jr>| d¡|jdk	r‚z| d|j¡Wn$tk
r€| t|jƒ¡YnXdd 	|¡t
|ƒfS)NÚ.Z	listeningrSz%s:%dz<%s at %#x>ú )Ú	__class__rrr:rTr9rSÚ	TypeErrorÚreprÚjoinÚid)rWZstatusrrrÚ__repr__üs

zdispatcher.__repr__cCs|dkr|j}|||j<dSr)rOrP)rWr?rrrÚadd_channel	szdispatcher.add_channelcCs,|j}|dkr|j}||kr"||=d|_dSr)rPrO)rWr?rBrrrrUszdispatcher.del_channelcCs.||f|_t ||¡}| d¡| |¡dSr')Zfamily_and_typerVrQrR)rWZfamilyÚtyperXrrrÚ
create_sockets

zdispatcher.create_socketcCs||_| ¡|_| |¡dSr)rVÚfilenorPrb©rWrXr?rrrrRs
zdispatcher.set_socketcCsDz*|j tjtj|j tjtj¡dB¡Wntk
r>YnXdS)NrH)rVZ
setsockoptÚ
SOL_SOCKETZSO_REUSEADDRÚ
getsockoptr-©rWrrrÚset_reuse_addr#s
ÿÿþzdispatcher.set_reuse_addrcCsdS©NTrrirrrr74szdispatcher.readablecCsdSrkrrirrrr87szdispatcher.writablecCs(d|_tjdkr|dkrd}|j |¡S)NTÚnté)r:rÚnamerVÚlisten)rWZnumrrrro>szdispatcher.listencCs||_|j |¡Sr)rTrVÚbind)rWrTrrrrpDszdispatcher.bindcCspd|_d|_|j |¡}|tttfks8|tkrBtj	dkrB||_
dS|dtfkr^||_
| ¡nt
|t|ƒ‚dS)NFTrlr)rSÚ
connectingrVZ
connect_exrrrrrrnrTr	Úhandle_connect_eventr-r)rWZaddressrrrrÚconnectHsÿÿ
zdispatcher.connectc
Csvz|j ¡\}}WnVtk
r(YdStk
rh}z$|jdtttfkrVWY¢
dS‚W5d}~XYn
X||fSdSr')rVÚacceptr]r-r.rrr
)rWZconnrTÚwhyrrrrtVs
zdispatcher.acceptc
Cstz|j |¡}|WStk
rn}z>|jdtkr<WY¢*dS|jdtkr\| ¡WY¢
dS‚W5d}~XYnXdSr')rVÚsendr-r.rr/r,)rWÚdataÚresultrurrrrvds

zdispatcher.sendc
Csrz(|j |¡}|s | ¡WdS|WSWnDtk
rl}z&|jdtkrZ| ¡WY¢
dS‚W5d}~XYnXdS)Nór)rVÚrecvr,r-r.r/)rWZbuffer_sizerwrurrrrzqs

zdispatcher.recvc
Csnd|_d|_d|_| ¡|jdk	rjz|j ¡Wn6tk
rh}z|jdtt	fkrX‚W5d}~XYnXdS)NFr)
rSr:rqrUrVÚcloser-r.rr
)rWrurrrr{ƒs
zdispatcher.closecCstj dt|ƒ¡dS)Nzlog: %s
)ÚsysÚstderrr$Ústr)rWÚmessagerrrÚlog“szdispatcher.logÚinfocCs||jkrtd||fƒdS)Nz%s: %s)Úignore_log_typesÚprint)rWrrcrrrÚlog_info–s
zdispatcher.log_infocCs:|jr| ¡n&|js.|jr$| ¡| ¡n| ¡dSr)r:Ú
handle_acceptrSrqrrÚhandle_readrirrrršs

zdispatcher.handle_read_eventcCs@|j tjtj¡}|dkr(t|t|ƒƒ‚| ¡d|_d|_dSrN)	rVrhrgÚSO_ERRORr-rÚhandle_connectrSrq©rWrrrrrr¦szdispatcher.handle_connect_eventcCs*|jr
dS|js|jr| ¡| ¡dSr)r:rSrqrrÚhandle_writerirrrr#®szdispatcher.handle_write_eventcCs0|j tjtj¡}|dkr$| ¡n| ¡dSr')rVrhrgr‡r,Úhandle_exptr‰rrrr%¹s
zdispatcher.handle_expt_eventcCsXtƒ\}}}}zt|ƒ}Wndt|ƒ}YnX| 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,)rWZnilÚtÚvÚtbinfoZ	self_reprrrrrÈsüù	zdispatcher.handle_errorcCs| dd¡dS)Nz!unhandled incoming priority eventrM©r„rirrrr‹Üszdispatcher.handle_exptcCs| dd¡dS)Nzunhandled read eventrMr‘rirrrr†ßszdispatcher.handle_readcCs| dd¡dS)Nzunhandled write eventrMr‘rirrrrŠâszdispatcher.handle_writecCs| dd¡dS)Nzunhandled connect eventrMr‘rirrrrˆåszdispatcher.handle_connectcCs| ¡}|dk	r|j|ŽdSr)rtÚhandle_accepted)rWZpairrrrr…èszdispatcher.handle_acceptcCs| ¡| dd¡dS)Nzunhandled accepted eventrM)r{r„)rWrXrTrrrr’íszdispatcher.handle_acceptedcCs| dd¡| ¡dS)Nzunhandled close eventrM)r„r{rirrrr,ñszdispatcher.handle_close)NN)N)N)N)r),rrrÚdebugrSr:rqÚclosingrTÚ	frozensetr‚rYrarbrUrVZAF_INETZSOCK_STREAMrdrRrjr7r8rorprsrtrvrzr{r€r„rrrr#r%rr‹r†rŠrˆr…r’r,rrrrrLÒsJ

 

	


rLc@s6eZdZddd„Zdd„Zdd„Zdd	„Zd
d„ZdS)
Údispatcher_with_sendNcCst |||¡d|_dS)Nry)rLrYÚ
out_bufferrfrrrrYüszdispatcher_with_send.__init__cCs.d}t ||jdd…¡}|j|d…|_dS)Nri)rLrvr—)rWZnum_sentrrrÚ
initiate_sendsz"dispatcher_with_send.initiate_sendcCs| ¡dSr)r˜rirrrrŠsz!dispatcher_with_send.handle_writecCs|jpt|jƒSr)rSÚlenr—rirrrr8szdispatcher_with_send.writablecCs0|jr| dt|ƒ¡|j||_| ¡dS)Nz
sending %s)r“r„r^r—r˜)rWrwrrrrvszdispatcher_with_send.send)NN)rrrrYr˜rŠr8rvrrrrr–ús

r–cCs‚t ¡\}}}g}|stdƒ‚|rL| |jjj|jjjt|j	ƒf¡|j
}q~|d\}}}d dd„|Dƒ¡}|||f|||fS)Nztraceback does not existéÿÿÿÿr[cSsg|]}d|‘qS)z
[%s|%s|%s]r)Ú.0ÚxrrrÚ
<listcomp>&sz%compact_traceback.<locals>.<listcomp>)r|Úexc_infoÚAssertionErrorr9Útb_frameÚf_codeÚco_filenameÚco_namer~Ú	tb_linenoÚtb_nextr_)rŽrÚtbrÚfileZfunctionÚlinerrrrrsýrcCs”|dkrt}t| ¡ƒD]n}z| ¡Wqtk
r`}z|jdtkrJn|sP‚W5d}~XYqtk
rt‚Yq|s€‚YqXq| ¡dSr')	r4r5Úvaluesr{r-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„Zd	S)Úfile_wrappercCst |¡|_dSr)rÚduprB©rWrBrrrrYNszfile_wrapper.__init__cCs*|jdkrtjd|t|d| ¡dS)Nrzunclosed file %r)Úsource)rBÚwarningsÚwarnÚResourceWarningr{rirrrÚ__del__Qs

ÿzfile_wrapper.__del__cGstj|jf|žŽSr)rr"rB©rWr.rrrrzWszfile_wrapper.recvcGstj|jf|žŽSr)rr$rBrµrrrrvZszfile_wrapper.sendNcCs(|tjkr|tjkr|sdStdƒ‚dS)Nrz-Only asyncore specific behaviour implemented.)rVrgr‡ÚNotImplementedError)rWÚlevelZoptnameZbuflenrrrrh]s
ÿþzfile_wrapper.getsockoptcCs(|jdkrdS|j}d|_t |¡dS)Nrrš)rBrr{r¯rrrr{hs

zfile_wrapper.closecCs|jSr)rBrirrrreoszfile_wrapper.fileno)N)rrrrYr´rzrvrhr"r$r{rerrrrr­Is
r­c@seZdZddd„Zdd„ZdS)Úfile_dispatcherNcCsPt |d|¡d|_z| ¡}Wntk
r4YnX| |¡t |d¡dS)NTF)rLrYrSreÚAttributeErrorÚset_filerÚset_blocking)rWrBr?rrrrYts
zfile_dispatcher.__init__cCs"t|ƒ|_|j ¡|_| ¡dSr)r­rVrerPrbr¯rrrrºs
zfile_dispatcher.set_file)N)rrrrYrºrrrrr¸rs
r¸)r3N)r3N)rGFNN)NF).Ú__doc__r(rVr|r;r±rÚerrnorrrrrrrr	r
rrr
rr•r/r4rrÚ	ExceptionrÚKeyboardInterruptÚ
SystemExitrr"r$r&r2rCrFZpoll3rKrLr–rr«rnr­r¸rrrrÚ<module>sD<ÿ


'

*
)