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: //usr/lib/python3.9/site-packages/fail2ban/tests/__pycache__/observertestcase.cpython-39.pyc
a

*d\���%�@s�dZdZdZddlZddlZddlZddlZddlZddlm	Z	ddl
mZmZddl
mZdd	lmZmZdd
lmZddlmZdd
lmZddlmZmZGdd�de�ZGdd�de�ZGdd�de�ZdS)zSerg G. Brester (sebres)z"Copyright (c) 2014 Serg G. Brester�GPL�N�)�MyTime)�
FailTicket�	BanTicket)�FailManager)�	Observers�ObserverThread)�Utils�)�LogCaptureTestCase)�	DummyJail)�
getFail2BanDb�
Fail2BanDbcsJeZdZ�fdd�Z�fdd�Zdd�Zddd	�Zd
d�Zdd
�Z�Z	S)�BanTimeIncrcs,tt|���t�|_|j|j_t�|_dS��Call before every test case.N)�superr�setUpr
�_BanTimeIncr__jail�calcBanTimer	�Observer��self��	__class__��C/usr/lib/python3.9/site-packages/fail2ban/tests/observertestcase.pyr.s
zBanTimeIncr.setUpcstt|���dS�N)rr�tearDownrrrrr5szBanTimeIncr.tearDowncCs|j�|j||�Sr)rrr)r�banTime�banCountrrrr8szBanTimeIncr.calcBanTimeNcsB|j���dd�|���d�d���dd�|���d�d���dd���dd���d	|�|��fd
d�tdd
�D�gd����dd�gd�}|dur�t|�d��}|d
kr�|d|d�||dgd
|}|��fdd�tdd
�D�|���dd���dd�|��fdd�tdd
�D�gd����dd�|��fdd�tdd
�D�gd����dd���dd�|��fdd�tdd
�D�gd����dd���dd�|�d �fd!d�td"�D�v���dd�|�d �fd#d�td"�D�v���d	d���dd���dd���dd�dS)$N�	increment�trueT�maxtimeZ1d�Q�rndtime�factor�multiplierscsg|]}��d|��qS��X�r��.0�i��arr�
<listcomp>G�z+BanTimeIncr.testDefault.<locals>.<listcomp>r��
��`	��%�K���,r%r%r%�30d)
r5r6r7r8r9r:r;iXi�i`	� rrcsg|]}��d|��qSr)r+r,r/rrr1Sr2�2csg|]}��d|��qSr)r+r,r/rrr1Zr2)
r6r7r8r9r:r;r%r%r%r%z1.33csg|]}t��d|���qSr)��intrr,r/rrr1`r2)
i<ixi�i�1i�ci��r%r%r%r%�12hcsg|]}��d|��qSr)r+r,r/rrr1gr2�
r5r6r7r8r9r:�rCrCrC�24h�5mFcs&g|]}d�fdd�td�D�v�qS)r5csg|]}��dd��qS�r*rr+r,r/rrr1nr2�6BanTimeIncr.testDefault.<locals>.<listcomp>.<listcomp>�
��range�r-�cr/rrr1nr2rHcs&g|]}d�fdd�td�D�v�qS)r5csg|]}��dd��qSrFr+r,r/rrr1rr2rGrHrIrKr/rrr1rr2)	r�setBanTimeExtra�assertEqualZgetBanTimeExtrarJ�len�split�
assertTrue�assertFalse)rr(ZarrZmultcntrr/r�testDefault;sh�&������zBanTimeIncr.testDefaultcCs,|�d�|�d�dd�td�D���dS)Nz1 2 4 8 16 32 64 128 256r=cSsg|]}td|>��qS)r)�strr,rrrr1~r2z/BanTimeIncr.testMultipliers.<locals>.<listcomp>�)rS�joinrJrrrr�testMultiplierszs
zBanTimeIncr.testMultiplierscs�|j���dd���dd���dd���dd���dd�|��fd	d
�tdd�D�gd
����dd�|��fdd
�tdd�D�gd����dd���dd�|��fdd
�tdd�D�gd����dd���dd�|��fdd
�tdd�D�gd����dd���dd�|�d�fdd
�td�D�v���dd�|�d�fdd
�td�D�v���dd���dd���dd���dd���dd�dS)Nr$rDr&ZformulazGban.Time * math.exp(float(ban.Count+1)*banFactor)/math.exp(1*banFactor)r'z2.0 / 2.885385r(csg|]}t��d|���qSr)r?r,r/rrr1�r2z+BanTimeIncr.testFormula.<locals>.<listcomp>rr3r4r<csg|]}t��d|���qSr)r?r,r/rrr1�r2)
r5r6r7r8r9r:r;iXi�i`	�1csg|]}t��d|���qSr)r?r,r/rrr1�r2)
i^iQi/i�r%r%r%r%r%r%rAcsg|]}t��d|���qSr)r?r,r/rrr1�r2rBrEFcs&g|]}d�fdd�td�D�v�qS)r5csg|]}t��dd���qSrFr?r,r/rrr1�r2�6BanTimeIncr.testFormula.<locals>.<listcomp>.<listcomp>rHrIrKr/rrr1�r2rHcs&g|]}d�fdd�td�D�v�qS)r5csg|]}t��dd���qSrFr?r,r/rrr1�r2rYrHrIrKr/rrr1�r2)rrMrNrJrQrRrrr/r�testFormula�sR������zBanTimeIncr.testFormula)N)
�__name__�
__module__�__qualname__rrrrSrWrZ�
__classcell__rrrrr,s
?rcsBeZdZ�fdd�Z�fdd�Zddd�Zdd	�Zd
d�Z�ZS)
�
BanTimeIncrDBcsrtt|���tdur"t�d��ntdur.dSt�dd�\}|_t	|j�|_
t�|_|j
|j_
t�|_|jt_dS)rNzEUnable to import fail2ban database module as sqlite is not available.z.dbZ	fail2ban_)rr_rr�unittestZSkipTest�tempfile�mkstemp�
dbFilenamer�dbr
�jail�databaser	rr�Main)r�_rrrr�s�
zBanTimeIncrDB.setUpcs:tdurdS|j��dt_t�|j�tt	|��
�dS�zCall after every test case.N)rr�stoprrg�os�removercrr_rrrrrr�s
zBanTimeIncrDB.tearDownNcCs<|j}|dur|�|j���}|�d�|j�|||�}|Sr)re�
getBanTime�actions�
setBanTimer�incrBanTime)r�ticketr reZincrTimerrrrp�s
zBanTimeIncrDB.incrBanTimec
	s�tdurdS�j}�j�|�|j�d�|�dd�|�dd�d}tt�	��}t
||g������fdd�td	�D�gd
����
��j�|����dd��j�||dd�D�d
|dfg���|d������d�d��j�|����dd��j�||dd�D�d|ddfg���dd��j�|ddd�D�d|ddfg���dd��jj|||d�D�d|ddfg����jjd|dd�g��jj|dd�}��t|�d||df��jj|dd�}��t|�d||df��jj||dd�}��t|�d||df�d}td�D]F}��||d����d�}��||d��j�|��|}�q0��||d����d�}��||d���||��j�|��|}t
|d|d g�}|�d!�|�
��j�||�t
|d"|d g�}|�d#�|�
��j�||��jj|dd�}��t|�d���t|d$�d%|||d|f���t|d
�d&|d"|d d#f��jj|d'dd�}��t|�d	���t|d�d&|d|d d!f���|d
�|����|d
�|����|d�|����|d�|d'��t
|d(|d#g������|d)������|d*����d*�����|d)������|d*����d)�����|d*����d*���
��j�|���jj|dd�}��t|�d	���t|d�d&|d(|d#d*f��j���jj|dd�}��t|�d	���d)���
��j�|���j���jj|dd�}��t|�d���|d$��|�d+�j_�j���jj|dd�}��t|�d
���|d$��|d"�d,�j_�j���jj|dd�}��|g�td-d.�}	d|	j_|	�dd��j|	_�j�|	�td/d-d0�}
d|
j_�j|
_�j�|
�t
||g�}|�d1�|�
��j�|	|�t
||d1g�}|�d2�|� d
�|�
��j�|
|��jj|	|dd�}��t|�d
���t|d$�d&||d1f��jj|
|dd�}��t|�d
���t|d$�d3||d1d2f��j�||	�D]}��|d
|d1f��q��qp�j�||
�D]"}��|d|d1d2f��qq��jj|dd4�D]}��|d	|d5f��q�q�|	j!dd6�|	�"�����j#���t��d&||d1f�|
j!dd6���|
�"�d�|	�d7d8�|	�!�|	�"�����j#���t��d&||d)f�|
�!���|
�"�d�dS)9NrHr"r#r(z&1 2 4 8 16 32 64 128 256 512 1024 2048�	192.0.2.1csg|]}���d��qS)rH)rpr,�rrqrrr1�r2z1BanTimeIncrDB.testBanTimeIncr.<locals>.<listcomp>�)rHrHrHcSsg|]\}}}|||f�qSrr�r-r!Z	timeOfBan�lastBanTimerrrr1�r2Fr��cSsg|]\}}}|||f�qSrrrurrrr1�r2rcSsg|]\}}}|||f�qSrrrurrrr1�r2�TcSsg|]\}}}|||f�qSrrrurrrr1r2)�
forbantime�fromtimei����)rzr{�correctBanTime)�ipr|zFFailTicket: ip=%s time=%s bantime=20 bancount=2 #attempts=0 matches=[])r{r|zH[FailTicket: ip=%s time=%s bantime=20 bancount=2 #attempts=0 matches=[]]�rer{r|�r>r%rCrXi@�rzGFailTicket: ip=%s time=%s bantime=%s bancount=13 #attempts=0 matches=[]zFFailTicket: ip=%s time=%s bantime=%s bancount=1 #attempts=0 matches=[]i ��3r*���i]������polling��backendzDummyJail-2)�namer�ipi�.zFFailTicket: ip=%s time=%s bantime=%s bancount=2 #attempts=0 matches=[])ZoveralljailsiPF)r|r$Z10m)$rrerd�addJailrnrorMr@r�timerrNrJZincrBanCount�addBanZgetBanZsetTimerp�getCurrentBansrTZassertNotEqualrOrRZ
isTimedOutrQ�purgeZgetID�	_purgeAger
�filterZ
ignoreSelfrf�setBanCountZrestoreCurrentBans�
getFailTicketZrestored)
rrer}�stime�restored_ticketsrvr.r �ticket2Zjail1Zjail2Zticket1�rowrrsr�testBanTimeIncr�sv�
��������


�
�
�



�









�
�



�
�zBanTimeIncrDB.testBanTimeIncrcCs0tdurdStdd�}|_|j|_|j�|�|j�d�|�dd�t	j
}|��|�|j�|�
d�|�d�d|j_|�d	d
d�|jdd
d�|�d�|�
d�|�d�tt���}|j��}|�|g�d}t||dg�}t�}|j_|�d�td�D]}|�|�|�
d||��q|�d�|�|��d�|� |�!��|�"d�|j�#||�|jj$||ddd�}	|�t%|	�d�t||g�}t�}|j_|�d�|�|�|�
d||�|�d�t&�'|j!d�}
|� |
�|�|
�(�|�)��|
}t*�+|�}
|�|
|�|�
d|
|d�|�d�|�|
�,�d�|�|
��d�|jj$||dd�}	|�t%|	�d�|�|	d�,�d�|�|	d��d�t||ddg�}|�-|�|�.|j�/��t|t��dg�}|�-|�|� |j�/��|�d�|jj$||dd�}	|�t%|	�d�|�|	d�,�d�|�|	d��d�t|d t��d!g�}|�d"�|�-|�|� |j�/��|�d�t|d t��d!g�}|�d#�|�-|�|�.|j�/��|�d�|jj$||dd�}	|�t%|	�d$�|�|	d�,�d"�|�|	d��d�|�0�dS)%Nr�r�rHr"r#Znoprr�ZDB_PURGEg����MbP?Zdb_purgezPurge database event occurredT)�waitg�������?rr�xrtZfailureFoundr�Fr~rZbanFound��<ztest-expired-ban-timeztest-actionsi@�rXztest-permanentr�r*r)1rr
rerdrfr�rnrorMrrg�startZdb_set�add�
wait_emptyr�Zadd_named_timer�assertLogged�	wait_idler@rr�ZgetBansrNrrr��failManagerZsetMaxRetryrJZ
addFailureZgetBanCountrQr�r�r�r�rOr
�wait_forZgetRetryZgetMaxRetryr�wraprmZ
putFailTicketrRZcheckBanrj)rre�obsr�Zticketsr}rqr�r.r�r�Zfailticket2rrr�testObserver�s�
























zBanTimeIncrDB.testObserver)N)	r[r\r]rrrpr�r�r^rrrrr_�s


jr_csHeZdZ�fdd�Z�fdd�Zdd�ZGdd�de�Zd	d
�Z�Z	S)�ObserverTestcstt|���dSr)rr�rrrrrr7szObserverTest.setUpcstt|���dSri)rr�rrrrrr;szObserverTest.tearDowncCst�}|��|�d�tdg�}|�d|j�|�d|jd�|�d�|�|j�|�	|tdg��d|_
|�d|j�|�d|jd�|�dtj�|�
|j�|�	|tdg��d|_
|�d�|�	|tdg��|�
|���|�
|���|��d}dS)	Nr�test�callZtest2TZtest3rHF)r	r�r��setr��clearr�rRZis_fullrNZpausedr
ZDEFAULT_SLEEP_TIMErQZisActiveZisAliverj)rr��orrr�testObserverBanTimeIncr?s,



z$ObserverTest.testObserverBanTimeIncrc@seZdZdd�ZdS)zObserverTest._BadObservercCstd��dS)N�run bad thread exception)�RuntimeErrorrrrr�run_szObserverTest._BadObserver.runN)r[r\r]r�rrrr�_BadObserver^sr�cs�t��}dd�|_tj}g��fdd�t_z>|��|��|����t	�
��fdd�d��W|t_n|t_0��d���t
��d����ddt���t�dd�d	�dS)
NcSsdS)Nrr)�vrrr�<lambda>er2z1ObserverTest.testObserverBadRun.<locals>.<lambda>cs
��|�Sr)�append)�args)�xrrr�ir2cst��o��d�S)N�Unhandled exception)rOZ
_is_loggedr�rr�rrr�nr2rtr�rrr�)r�r�r��sys�__excepthook__r�rjrVrQr
r�r�rNrOr�rT)rr�Zprev_exchookrr�r�testObserverBadRunbs

zObserverTest.testObserverBadRun)
r[r\r]rrr�r	r�r�r^rrrrr�5s
r�)�
__author__�
__copyright__�__license__rkr�r`rar�Z
server.mytimerZ
server.ticketrrZserver.failmanagerrZserver.observerrr	Zserver.utilsr
�utilsrZ	dummyjailr
Zdatabasetestcaserrrr_r�rrrr�<module>s,