HEX
Server: nginx/1.30.4
System: Linux d-twindigital-web-1.host-ed.eu 4.18.0-553.141.2.el8_10.x86_64 #1 SMP Wed Jul 8 10:28:18 EDT 2026 x86_64
User: u_twindigital_html (1009)
PHP: 8.3.30
Disabled: NONE
Upload Files
File: //lib/python3.6/site-packages/fail2ban/server/__pycache__/failmanager.cpython-36.pyc
3

=�Z]��@sldZdZdZddlmZddlZddlmZdd	lm	Z	m
Z
e	e�Zej
ZGd
d�d�ZGdd
�d
e�ZdS)z
Cyril Jaquierz Copyright (c) 2004 Cyril JaquierZGPL�)�LockN�)�
FailTicket�)�	getLogger�	BgServicec@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d�Zd
d�Zdd
�Zdd�Z	dd�Z
ddd�Zdd�Zdd�Z
dd�Zddd�ZdS) �FailManagercCs4t�|_t�|_d|_d|_d|_d|_t�|_	dS)N�iXr�2)
r�_FailManager__lock�dict�_FailManager__failList�_FailManager__maxRetry�_FailManager__maxTime�_FailManager__failTotal�
maxEntriesr�_FailManager__bgSvc)�self�r�!/usr/lib/python3.6/failmanager.py�__init__(szFailManager.__init__c	Cs|j�||_WdQRXdS)N)rr)r�valuerrr�setFailTotal1szFailManager.setFailTotalc	Cs|j�|jSQRXdS)N)rr)rrrr�getFailTotal5szFailManager.getFailTotalcCs8|j�(t|j�tdd�t|jj��D��fSQRXdS)NcSsg|]}|j��qSr)�getRetry)�.0�frrr�
<listcomp><sz,FailManager.getFailCount.<locals>.<listcomp>)r�lenr
�sum�list�values)rrrr�getFailCount9szFailManager.getFailCountc	Cs|j�|jSQRXdS)N)rr)rrrrr>scCs
||_dS)N)r)rrrrr�setMaxRetryBszFailManager.setMaxRetrycCs|jS)N)r)rrrr�getMaxRetryEszFailManager.getMaxRetrycCs
||_dS)N)r)rrrrr�
setMaxTimeHszFailManager.setMaxTimecCs|jS)N)r)rrrr�
getMaxTimeKszFailManager.getMaxTimerc
Cs�d}|j��p|j�}y�|j|}||kr4d}d}n |j�}|j�}|dkrT|d7}|j�}|j|�|j�||jkr�|j	|�|j
d�|j|||�|j�}t|�|j
kr�|j||j
d��WnRtk
�rt|t�r�|}n
t|d�}||j�k�r|j
|�||j|<YnX|j�}|jd7_tj�tk�rxdjdd�|jj�D��}	tjtd|jt|j�|	f�WdQRX|jj�|S)Nrr)�ticketz, cSs g|]\}}d||j�f�qS)z%s:%d)r)r�k�vrrrrysz*FailManager.addFailure.<locals>.<listcomp>zMTotal # of detected failures: %d. Current failures from %d IPs (IP:count): %s)rZgetIDr
Z
getMatchesZ
getAttemptZgetTimeZsetLastTimeZgetLastResetrZsetLastResetZsetRetryZincrrZ
setMatches�KeyError�
isinstancerrr�logSysZgetEffectiveLevel�logLevel�join�items�logr�service)
rr'�countZattempts�fidZfDataZmatchesZattemptZunixTimeZfailures_summaryrrr�
addFailureNsJ








 
zFailManager.addFailurec	Cs|j�t|j�SQRXdS)N)rrr
)rrrr�size�szFailManager.sizecs��j����fdd��jj�D�}t|�t�j�kr>t��_nt|�sJdSt|�dt�j�dkr|x6|D]}�j|=qjWn t��fdd��jj�D���_WdQRX�jj�dS)Ncs&g|]\}}|j��j�kr|�qSr)�getLastTimer)rr3�item)r�timerrr�sz'FailManager.cleanup.<locals>.<listcomp>g@g@c3s,|]$\}}|j��j�kr||fVqdS)N)r6r)rr3r7)rr8rr�	<genexpr>�sz&FailManager.cleanup.<locals>.<genexpr>)rr
r/rrrr1)rr8Ztodeleter3r)rr8r�cleanup�s

*zFailManager.cleanupcCs8|j�(y|j|=Wntk
r(YnXWdQRXdS)N)rr
r*)rr3rrr�
delFailure�s
zFailManager.delFailureNc
Csp|j�RxJ|dkr"||jkr"|gn|jD](}|j|}|j�|jkr(|j|=|Sq(WWdQRX|jj�t�dS)N)rr
rrrr1�FailManagerEmpty)rr3�datarrr�toBan�s$

zFailManager.toBan)r)N)�__name__�
__module__�__qualname__rrrr"r#r$r%r&r4r5r:r;r>rrrrr&s	
3rc@seZdZdS)r<N)r?r@rArrrrr<�sr<)�
__author__Z
__copyright__Z__license__Z	threadingrZloggingr'rZhelpersrrr?r,�DEBUGr-r�	Exceptionr<rrrr�<module>s