CasperSecurity

Current Path : /lib/python3/dist-packages/fail2ban/server/__pycache__/
Upload File :
Current File : //lib/python3/dist-packages/fail2ban/server/__pycache__/asyncserver.cpython-310.pyc

o

;s*b�'�@s�dZdZdZddlmZmZmZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZddlmZdd	lmZdd
lmZmZmZee�ZGdd�dej�Zddd�ZGdd�dej�ZGdd�de�Z dS)z
Cyril Jaquierz Copyright (c) 2004 Cyril Jaquier�GPL�)�dumps�loads�HIGHEST_PROTOCOLN�)�Utils�)�CSPROTO)�logging�	getLogger�formatExceptionInfoc@sLeZdZdd�Zdd�Zdd�Zdd�ZGd	d
�d
e�Zdd�Z	d
d�Z
dS)�RequestHandlercCs0tj�||�||_||_g|_|�tj�dS�N)	�asynchat�
async_chat�__init__�_RequestHandler__conn�_RequestHandler__transmitter�_RequestHandler__buffer�set_terminatorr	�END)�self�conn�transmitter�r�=/usr/lib/python3/dist-packages/fail2ban/server/asyncserver.pyr5s
zRequestHandler.__init__cCsH|jr"|j}d|_z
|�tj�|��WdStjy!YdSwdSr)r�shutdown�socket�	SHUT_RDWR�close�error)rrrrr�__close=s��zRequestHandler.__closecCs|��tj�|�dSr)�_RequestHandler__closerr�handle_close�rrrrr#GszRequestHandler.handle_closecCs|j�|�dSr)r�append)r�datarrr�collect_incoming_dataKsz$RequestHandler.collect_incoming_datac@�eZdZdS)zRequestHandler.LoadErrorN��__name__�
__module__�__qualname__rrrr�	LoadErrorP�r-c
Cs zZ|j}g|_tj�|�}|tjkr|��WdSzt|�}Wnty=}ztj	d|t�
�tjkd�t
�|��d}~ww|jrH|j�|�}ndg}t|t�}|�|tj�WdSty�}z)t|t
j�sutj	d|t�
�tjkd�td|t�}|�|tj�WYd}~dSd}~ww)Nz$PROTO-error: load message failed: %s��exc_info�SHUTDOWNzCaught unhandled exception: %r�	ERROR: %s)rr	�EMPTY�join�CLOSE�close_when_doner�	Exception�logSysr �getEffectiveLevelr
�DEBUGr
r-r�proceedrr�pushr�
isinstance)r�message�errr�found_terminatorXs<
�
��
���zRequestHandler.found_terminatorc
Cs�z(t�\}}t�dt|��t�t�����td|t�}|�	|t
j�Wnty:}zWYd}~nd}~ww|�
�dS)Nz"Unexpected communication error: %sr2)rr8r �str�	traceback�
format_exc�
splitlinesrrr<r	rr7r6)r�e1�e2r>r?rrr�handle_error~s
��zRequestHandler.handle_errorN)r*r+r,rr"r#r'r7r-r@rGrrrrr
3s
&r
Fc
Cs�|si}d|d<|durtj}tj}t|�r|}n|r2tjr2ttjd�r2t�	d�t
|�d}tj}|�r�z||�|drF|dd8<Wn{ty�}zo|�sYWYd}~dS|dd7<|ddkr�|jdt
jt
jfvr{t�d	t|��n=t�d	t|��n4|ddkr�t�|�t�d
�n#|ddkr�|jdt
jks�t|���dkr�t�d|�WYd}~dSWYd}~nd}~ww|�s5dSdS)
z�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)
	r�listenN�pollz"Server listener (select) uses poll��r�z Server connection was closed: %sz0Too many errors - stop logging connection errors�d�+Too many errors - critical count reached %r)r�DEFAULT_SLEEP_TIME�asyncorerI�callable�poll2�hasattr�selectr8�debug�floatr7�args�errno�ENOTCONN�EBADF�inforAr �	exception�EMFILE�sum�values�critical)�active�timeout�use_poll�	err_countrIr?rrr�loop�sH
�
���rdc@sbeZdZdd�Zdd�Zdd�Zdd	d
�Zdd�Zd
d�Zdd�Z	dd�Z
dd�Zedd��Z
dS)�AsyncServercCs:tj�|�||_d|_d|_d|_ddd�|_d|_dS)Nz/var/run/fail2ban/fail2ban.sockFr)�acceptrH)	rO�
dispatcherr�_AsyncServer__transmitter�_AsyncServer__sock�_AsyncServer__init�_AsyncServer__active�_AsyncServer__errCount�onstart)rrrrrr�s
zAsyncServer.__init__cCsdS�NFrr$rrr�writable�szAsyncServer.writablec
Csz|��\}}Wngtyo}z[|jdd7<|jddkr.tjd||jddkd�n6|jddkr;t�d�n)|jddkrdt|tj�rP|jdt	j
ksYt|j���d	krdt�
d
|j�|��WYd}~dSd}~ww|jdr~|jdd8<t�|�t||j�dS)NrfrrKzAccept socket error: %sr/z.Too many acceptor errors - stop logging errorsrLrrJrM)rfr7rlr8�warningr r=rrVrWr\r]r^r_�stopre�_AsyncServer__markCloseOnExecr
rh)rr�addrr?rrr�
handle_accept�s0�
���

zAsyncServer.handle_acceptNFcs�t���_|�_tj�|�r#t�d�|rt�	d���
�ntd����t
jt
j����z��|�WntyDtd�j��wt��j
���d�d�_�_�_�jr`���t�fdd�||�jd	�d
�_���dS)Nz$Fail2ban seems to be already runningzForcing execution of the serverzServer already runningzUnable to bind socket %srTcs�jSr)�_AsyncServer__looprr$rr�<lambda>sz#AsyncServer.start.<locals>.<lambda>)rarbrcF)�	threading�current_thread�_AsyncServer__workerri�os�path�existsr8r rp�_remove_sock�AsyncServerException�
create_socketr�AF_UNIX�SOCK_STREAM�set_reuse_addr�bindr7rerrrHrjrurkrmrdrlrq)r�sock�forcerarbrr$r�start�s.



�
zAsyncServer.startcs�d}�jr8d�_�jrz	�j�tj�Wn
tjyYnwtj���t	�
��jkr6t�
�fdd�d�d}�jrNtj��j�rN���t�d�j�|rUt�d�d�_dS)NFcs�jSr�rkrr$rrrvsz#AsyncServer.close.<locals>.<lambda>rTzRemoved socket file zSocket shutdown)rkrurrrr rOrgrrwrxryr�wait_forrjrzr{r|rir}r8rT)r�stopflgrr$rrs&�

zAsyncServer.closecCs|jr
t�d�d|_dSdS)NzStop communication, shutdown)rhr8rTr$rrr�stop_communication,s

�zAsyncServer.stop_communicationcCs|��|��dSr)r�rr$rrrrq4szAsyncServer.stopcCs|jSrr�r$rrr�isActive9szAsyncServer.isActivec
CsHz	t�|j�WdSty#}z|jtjkr�WYd}~dSd}~wwr)rz�removeri�OSErrorrW�ENOENT)rr?rrrr}?s���zAsyncServer._remove_sockcCs0|��}t�|tj�}t�|tj|tjB�dSr)�fileno�fcntl�F_GETFD�F_SETFD�
FD_CLOEXEC)r��fd�flagsrrr�__markCloseOnExecLszAsyncServer.__markCloseOnExecrn)r*r+r,rrortr�rr�rqr�r}�staticmethodrrrrrrre�s

rec@r()r~Nr)rrrrr~Vr.r~)NFN)!�
__author__�
__copyright__�__license__�picklerrrrrOrWr�rzr�sysrwrB�utilsr�protocolr	�helpersr
rrr*r8rr
rdrgrer7r~rrrr�<module>s,
X6
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY