HEX
Server: LiteSpeed
System: Linux 112.webhostingindonesia.co.id 5.14.0-570.62.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Nov 11 10:10:59 EST 2025 x86_64
User: iyfwylsv (10313)
PHP: 8.2.30
Disabled: NONE
Upload Files
File: //lib/python3.9/site-packages/fail2ban/server/__pycache__/failmanager.cpython-39.opt-2.pyc
a

C6(,-(�@spdZdZdZddlmZddlZddlmZmZdd	l	m
Z
mZe
e�Z
ejZGd
d�d�ZGdd
�d
e�ZdS)z
Cyril Jaquierz Copyright (c) 2004 Cyril JaquierZGPL�)�LockN�)�
FailTicket�	BanTicket�)�	getLogger�	BgServicec@sxeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
ddd�Zdd�Zdd�Z
dd�Zddd�ZdS) �FailManagercCs4t�|_t�|_d|_d|_d|_d|_t�|_	dS)N�iXr�)
r�_FailManager__lock�dict�_FailManager__failList�_FailManager__maxRetry�_FailManager__maxTime�_FailManager__failTotal�
maxMatchesr�_FailManager__bgSvc��self�r�?/usr/lib/python3.9/site-packages/fail2ban/server/failmanager.py�__init__(szFailManager.__init__cCs
||_dS�N�r�r�valuerrr�setFailTotal1szFailManager.setFailTotalcCs|jSrrrrrr�getFailTotal4szFailManager.getFailTotalcCsP|j�6t|j�tdd�t|j���D��fWd�S1sB0YdS)NcSsg|]}|���qSr��getRetry)�.0�frrr�
<listcomp>:�z,FailManager.getFailCount.<locals>.<listcomp>)r�lenr�sum�list�valuesrrrr�getFailCount7szFailManager.getFailCountcCs
||_dSr�rrrrr�setMaxRetry<szFailManager.setMaxRetrycCs|jSrr*rrrr�getMaxRetry?szFailManager.getMaxRetrycCs
||_dSr�rrrrr�
setMaxTimeBszFailManager.setMaxTimecCs|jSrr-rrrr�
getMaxTimeEszFailManager.getMaxTimerFc	Cs�d}|j���|��}z�|j|}||ur4d}d}n*|jrB|��nd}|��}|dkr^|d7}|��}	|�|	|j�|�	|||�|jr�|��}t
|�|jkr�|�||jd��n
|�d�Wnzt�y<|s�t
|t�r�|��YWd�St
|t��r|}n
t�|�}||��k�r.|�|�||j|<Yn0|��}|jd7_t��tk�r�d�dd�|j��D��}
t�td|jt
|j�|
f�Wd�n1�s�0Y|j��|S)Nrrz, cSs g|]\}}d||��f�qS)z%s:%dr)r!�k�vrrrr#vs�z*FailManager.addFailure.<locals>.<listcomp>zMTotal # of detected failures: %d. Current failures from %d IPs (IP:count): %s)rZgetIDrrZ
getMatchesZ
getAttempt�getTimeZ
adjustTimerZincr%Z
setMatches�KeyError�
isinstancerr rZwrapZsetRetryr�logSysZgetEffectiveLevel�logLevel�join�items�logr�service)r�ticket�countZobservedZattempts�fidZfDataZmatchesZattemptZunixTimeZfailures_summaryrrr�
addFailureHsP




��&
zFailManager.addFailurecCs
t|j�Sr)r%rrrrr�size~szFailManager.sizecs��|j8�|j���fdd�|j��D�}t|�t|j�krFt�|_nt|�s^Wd�dSt|�dt|j�dkr�|D]}|j|=q|nt�fdd�|j��D��|_Wd�n1s�0Y|j��dS)Ncs g|]\}}|���kr|�qSr�r2�r!r=�item��timerrr#�s�z'FailManager.cleanup.<locals>.<listcomp>g@g@c3s&|]\}}|���kr||fVqdSrr@rArCrr�	<genexpr>�s
�z&FailManager.cleanup.<locals>.<genexpr>)rrrr8r%r
rr:)rrDZtodeleter=rrCr�cleanup�s

<zFailManager.cleanupc	CsJ|j�0z|j|=Wnty&Yn0Wd�n1s<0YdSr)rrr3)rr=rrr�
delFailure�s
zFailManager.delFailureNcCs�|j�j|dur ||jvr |gn|jD]:}|j|}|��|jkr&|j|=|Wd�Sq&Wd�n1sv0Y|j��t�dSr)rrr rrr:�FailManagerEmpty)rr=�datarrr�toBan�s"
6
zFailManager.toBan)rF)N)�__name__�
__module__�__qualname__rrrr)r+r,r.r/r>r?rFrGrJrrrrr	&s	
6r	c@seZdZdS)rHN)rKrLrMrrrrrH�srH)�
__author__Z
__copyright__Z__license__�	threadingrZloggingr;rrZhelpersrrrKr5�DEBUGr6r	�	ExceptionrHrrrr�<module>s