%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /lib/python2.7/site-packages/fail2ban/server/
Upload File :
Create Path :
Current File : //lib/python2.7/site-packages/fail2ban/server/asyncserver.pyc

�
��&dc@s@dZdZdZddlmZmZmZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZddlmZdd	lmZdd
lmZmZmZee�Zdejfd��YZdedd
�Zdejfd��YZ de!fd��YZ"dS(s
Cyril Jaquiers Copyright (c) 2004 Cyril JaquiertGPLi����(tdumpstloadstHIGHEST_PROTOCOLNi(tUtilsi(tCSPROTO(tloggingt	getLoggertformatExceptionInfotRequestHandlercBsTeZd�Zd�Zd�Zd�Zdefd��YZd�Zd�Z	RS(cCsBtjj||�||_||_g|_|jtj�dS(N(	tasynchatt
async_chatt__init__t_RequestHandler__connt_RequestHandler__transmittert_RequestHandler__buffertset_terminatorRtEND(tselftconnttransmitter((s?/usr/lib/python2.7/site-packages/fail2ban/server/asyncserver.pyR5s
			cCsW|jrS|j}d|_y|jtj�|j�WqStjk
rOqSXndS(N(R
tNonetshutdowntsockett	SHUT_RDWRtcloseterror(RR((s?/usr/lib/python2.7/site-packages/fail2ban/server/asyncserver.pyt__close=s			cCs|j�tjj|�dS(N(t_RequestHandler__closeR
Rthandle_close(R((s?/usr/lib/python2.7/site-packages/fail2ban/server/asyncserver.pyRGs
cCs|jj|�dS(N(Rtappend(Rtdata((s?/usr/lib/python2.7/site-packages/fail2ban/server/asyncserver.pytcollect_incoming_dataKst	LoadErrorcBseZRS((t__name__t
__module__(((s?/usr/lib/python2.7/site-packages/fail2ban/server/asyncserver.pyR!PscCsdy�|j}g|_tjj|�}|tjkrD|j�dSyt|�}WnGtk
r�}tj	d|dtj
�tjk�t
j|��nX|jr�|jj|�}n	dg}t|t�}|j|tj�Wnttk
r_}t|t
j�s5tj	d|dtj
�tjk�ntd|t�}|j|tj�nXdS(Ns$PROTO-error: load message failed: %stexc_infotSHUTDOWNsCaught unhandled exception: %rs	ERROR: %s(RRtEMPTYtjointCLOSEtclose_when_doneRt	ExceptiontlogSysRtgetEffectiveLevelRtDEBUGR	R!RtproceedRRtpushRt
isinstance(Rtmessagete((s?/usr/lib/python2.7/site-packages/fail2ban/server/asyncserver.pytfound_terminatorXs0		
		cCs�yjt�\}}tjdt|��tjtj�j��td|t�}|j	|t
j�Wntk
r}nX|j
�dS(Ns"Unexpected communication error: %ss	ERROR: %s(RR+Rtstrt	tracebackt
format_exct
splitlinesRRR/RRR*R)(Rte1te2R1R2((s?/usr/lib/python2.7/site-packages/fail2ban/server/asyncserver.pythandle_error~s(
R"R#RRRR R*R!R3R:(((s?/usr/lib/python2.7/site-packages/fail2ban/server/asyncserver.pyR	3s		
			&cCs�|si}nd|d<|dkr1tj}ntj}t|�rO|}nJ|r�tjr�ttjd�r�t	j
d�t|�d}tj}nxN|�r�y+||�|dr�|dcd8<nWq�tk
r�}|�s�Pn|dcd7<|ddkr`|j
dtjtjfkrGt	jdt|��q�t	jdt|��q�|ddkr�t	j|�t	jd	�q�|dd
kr�|j
dtjks�t|j��dkr�t	jd|�Pq�q�q�Xq�WdS(
s�Custom event loop implementation

	Uses poll instead of loop to respect `active` flag,
	to avoid loop timeout mistake: different in poll and poll2 (sec vs ms),
	and to prevent sporadic errors like EBADF 'Bad file descriptor' etc. (see gh-161)
	itlistentpolls"Server listener (select) uses polli�iis Server connection was closed: %ss0Too many errors - stop logging connection errorsids+Too many errors - critical count reached %rN(RRtDEFAULT_SLEEP_TIMEtasyncoreR<tcallabletpoll2thasattrtselectR+tdebugtfloatR*targsterrnotENOTCONNtEBADFtinfoR4Rt	exceptiontEMFILEtsumt
itervaluestcritical(tactivettimeouttuse_pollt	err_countR<R2((s?/usr/lib/python2.7/site-packages/fail2ban/server/asyncserver.pytloop�sB	
		!


	
tAsyncServercBsneZd�Zd�Zd�Zd
ed�Zd�Zd�Z	d�Z
d�Zd�Ze
d	��ZRS(cCsXtjj|�||_d|_t|_t|_idd6dd6|_d|_
dS(Ns/var/run/fail2ban/fail2ban.sockitacceptR;(R>t
dispatcherRt_AsyncServer__transmittert_AsyncServer__socktFalset_AsyncServer__initt_AsyncServer__activet_AsyncServer__errCountRtonstart(RR((s?/usr/lib/python2.7/site-packages/fail2ban/server/asyncserver.pyR�s				cCstS(N(RY(R((s?/usr/lib/python2.7/site-packages/fail2ban/server/asyncserver.pytwritable�scCsYy|j�\}}Wn�tk
r}|jdcd7<|jddkrttjd|d|jddk�n�|jddkr�tjd�ny|jddkrt|tj�r�|jdt	j
ks�t|jj��d	krtj
d
|j�|j�qndSX|jdr8|jdcd8<ntj|�t||j�dS(NRUiisAccept socket error: %sR$s.Too many acceptor errors - stop logging errorsidii�s+Too many errors - critical count reached %r(RUR*R\R+twarningRR0RRERFRKRLRMRNtstopRTt_AsyncServer__markCloseOnExecR	RW(RRtaddrR2((s?/usr/lib/python2.7/site-packages/fail2ban/server/asyncserver.pyt
handle_accept�s&(

csGtj��_|�_tjj|�rftjd�|rWtj	d��j
�qftd��n�jt
jt
j��j�y�j|�Wn$tk
r�td�j��nXtj�j
��jd�t�_�_�_�jr�j�nt�fd�d|d|d	�j�t�_�j�dS(
Ns$Fail2ban seems to be already runningsForcing execution of the serversServer already runningsUnable to bind socket %sics�jS(N(t_AsyncServer__loop((R(s?/usr/lib/python2.7/site-packages/fail2ban/server/asyncserver.pyt<lambda>sRPRQRR(t	threadingtcurrent_threadt_AsyncServer__workerRXtostpathtexistsR+RR_t_remove_socktAsyncServerExceptiont
create_socketRtAF_UNIXtSOCK_STREAMtset_reuse_addrtbindR*RTRaR;tTrueRZRdR[R]RSR\RYR`(RtsocktforceRPRQ((Rs?/usr/lib/python2.7/site-packages/fail2ban/server/asyncserver.pytstart�s,	





	
(	cs�t}�jr�t�_�jrRy�jjtj�WqRtjk
rNqRXntjj	��t
j��jkr�t
j�fd�d�nt}n�jr�tjj�j�r��j�tjd�j�n|r�tjd�nt�_dS(Ncs�jS(N(R[((R(s?/usr/lib/python2.7/site-packages/fail2ban/server/asyncserver.pyResisRemoved socket file sSocket shutdown(RYR[RdRRRRR>RVRRfRgRhRtwait_forRsRZRiRjRkRXRlR+RC(Rtstopflg((Rs?/usr/lib/python2.7/site-packages/fail2ban/server/asyncserver.pyRs$				
cCs&|jr"tjd�d|_ndS(NsStop communication, shutdown(RWR+RCR(R((s?/usr/lib/python2.7/site-packages/fail2ban/server/asyncserver.pytstop_communication,s	
cCs|j�|j�dS(N(RyR(R((s?/usr/lib/python2.7/site-packages/fail2ban/server/asyncserver.pyR`4s
cCs|jS(N(R[(R((s?/usr/lib/python2.7/site-packages/fail2ban/server/asyncserver.pytisActive9scCsFytj|j�Wn+tk
rA}|jtjkrB�qBnXdS(N(RitremoveRXtOSErrorRFtENOENT(RR2((s?/usr/lib/python2.7/site-packages/fail2ban/server/asyncserver.pyRl?s
cCsB|j�}tj|tj�}tj|tj|tjB�dS(N(tfilenotfcntltF_GETFDtF_SETFDt
FD_CLOEXEC(Rttfdtflags((s?/usr/lib/python2.7/site-packages/fail2ban/server/asyncserver.pyt__markCloseOnExecLsN(R"R#RR^RcRRYRvRRyR`RzRltstaticmethodRa(((s?/usr/lib/python2.7/site-packages/fail2ban/server/asyncserver.pyRT�s								
RmcBseZRS((R"R#(((s?/usr/lib/python2.7/site-packages/fail2ban/server/asyncserver.pyRmVs(#t
__author__t
__copyright__t__license__tpickleRRRR
R>RFRRiRtsysRfR5tutilsRtprotocolRthelpersRRRR"R+RR	RRYRSRVRTR*Rm(((s?/usr/lib/python2.7/site-packages/fail2ban/server/asyncserver.pyt<module>s(X6�

Zerion Mini Shell 1.0