HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //lib/python3.6/site-packages/fail2ban/server/__pycache__/transmitter.cpython-36.opt-1.pyc
3

UB(dG?�@sRdZdZdZddlZddlZddlmZmZddlm	Z	ee
�ZGdd	�d	�ZdS)
z
Cyril Jaquierz Copyright (c) 2004 Cyril JaquierZGPL�N�)�	getLogger�logging)�versionc@s>eZdZdd�Zdd�Zdd�Zddd	�Zd
d�Zdd
�ZdS)�TransmittercCs||_d|_dS)Nr)�_Transmitter__server�_Transmitter__quiet)�selfZserver�r
�!/usr/lib/python3.6/transmitter.py�__init__,szTransmitter.__init__cCsptjdd|�y|j|�}d|f}WnFtk
rj}z*tjd||tj�tjkd�d|f}WYdd}~XnX|S)N�zCommand: %rrz"Command %r has failed. Received %r)�exc_info�)�logSys�log�_Transmitter__commandHandler�	Exception�errorZgetEffectiveLevelr�DEBUG)r	�command�retZack�er
r
r�proceed6s
zTransmitter.proceedc
Cs|d}|dkrdS|dkrr|d}|dkr:td|f��y|d}Wntk
r^d	}YnX|jj||�|S|d
kr�|j|dd�d�S|dkr�|j|dd��S|d
kr�|d}|jj|�dS|dk�rt|�dkr�|jj�n.|ddk�r|jj�n|d}|jj	|�dS|dk�r�|dd�}d|_
z4|jj|ddi�x|dD]}|j|��qVWWdd|_
|jj|ddi�XdS|dk�r�t|�dk�r�|dd�}t|�dk�r�|ddk�r�|jj
�S|jj
d|�S|dk�r|jjd|dd��S|dk�r|dd�S|dk�r2tjd�dS|dk�rrd|_
z"x|dD]}|j|��qNWWdd|_
XdS|dk�r�|d}tjt|��dS|dk�r�|jj�S|dk�r�|j|dd��S|dk�r�|j|dd��S|dk�r�tjS|d k�rtj|d�dStd!��dS)"NrZpingZpong�addrz--allzReserved name %rr�autoz	multi-setT�set�start�stop�reload�ZbeginFZOKZunban�bannedZechoz
server-statusz
Status: readyzServer readyz
server-stream�sleepZ	flushlogs�get�statusrzconfig-errorzInvalid command)r�
IndexErrorrZaddJail�_Transmitter__commandSetZ	startJail�len�quitZstopAllJailZstopJailrZreloadJailsr�
setUnbanIPr!r�debug�timer"�floatZ	flushLogs�_Transmitter__commandGetr$rr)r	r�nameZbackendZopts�cmd�valuer
r
rZ__commandHandlerHs�















zTransmitter.__commandHandlerFcCsF|d}|dkr8|d}|jj|�|jr.dS|jj�S|dkrt|d}|jj|�rh|jr^dS|jj�Std���
n�|dkr�|d}|jj|�r�|jr�dS|jj�Std���
n�|dkr�|d}|jj	|�|jr�dS|S|d	k�r�|d}|jj
|�S|d
k�r@|jj|d�|jj�}|dk�r*dS|j�r6dS|j
S�	n�|dk�r�|jj�}|dk�rptjtjd�dSt|d�|_|j�r�dS|jS�	n�|d
k�r�|jj�}|dk�r�tjtjd�dS|d|_|j�r�dS|jS�	nL|ddk�rN|ddk�r|jj|d�n&|ddk�r.|jj|d�ntd��|j�rBdS|jj|�S|ddk�r�|d}|jj||�|j�r~dS|jj|�S|ddk�r�x$|dd�D]}|jj||��q�W|j�r�dS|jj|�S|ddk�r|d}|jj||�|j�rdS|jj|�S|ddk�rN|d}|jj||�|j�rBdS|jj|�S|ddk�r�|d}|jj||�|j�r~dS|jj|�S|ddk�r$|d}d}t |�dk�r�|dj!�dk�r�d}n|dj!�dk�r�t"d ��nt |�dk�r�t"d!��|jj#|||�|j�rdS|jj$|�S|dd"k�r`|d}|jj%||�|j�rTdS|jj$|�S|dd#k�r�|d}|jj&||�|j�r�dS|jj'|�S|dd$k�r�|dd�}|jj(||�|j�r�dS|jj)|�S|dd%k�r|dd�}|jj*||�|j�rdS|jj)|�S|dd&k�rj|d}|jj+||�|j�rLdS|jj,|�}|�rf|j-�Sd'S|dd(k�r�|d}|jj.|||d)�|�r�dS|j�r�dS|jj/|�S|dd*k�r�t|d�}|jj0||�|j�r�dS|jj/|�S|dd+k�r>|d}|jj1|||d)�|�r&dS|j�r2dS|jj2|�S|dd,k�r~t|d�}|jj3||�|j�rrdS|jj2|�S|dd-k�r�|d}|jj4||�|j�r�dS|jj5|�S|dd.k�r�|d}|jj6||�|j�r�dS|jj7|�S|dd/k�r2|d}|jj8||�|j�r&dS|jj9|�S|dd0k�rn|d}|jj:||�|j�rbdS|jj;|�S|dd1k�r�|d}|jj<|t|��|j�r�dS|jj=|�S|dd2k�r�|d}|jj>|t|��|j�r�dS|jj?|�S|dd3k�r.|d}|jj@|t|��|j�r"dS|jjA|�S|dd4k�rj|d}|jjB||�|j�r^dS|jjC|�S|dd5k�r�|dd�}|j�r�dS|jjD|f|��S|djEd6��r�|d}|dt d6�d�}|jjF|||�|j�r�dS|jjG||�S|dd7k�	r |dd�}|jjH||�S|dd8k�	rpd}	|dd9k�	rN|dd�}nd}	|dd�}|jjI|||	d:�S|dd;k�	r�|dg}
t |�dk�	r�|
jJ|dtKjL|d�g�|jjM|f|
��|j�	r�dS|
dS|dd<k�
r|d}|jjN||�dS|dd=k�r0|d}|jjO||�}|�
r�x�|dD]t}
tjd>d?|
�|
d}tPtQ||d���
r�t |
�dk�
r|tKjL|
d�ni}tQ||�f|�n|
d}tR|||��
q4WdS|d}tPtQ||d���rt |�dk�
r�tKjL|d�ni}|j�
r�dStQ||�f|�S|d}tR|||�|j�r&dStQ||�Std@|df��dS)ANr�loglevelr�	logtargetzFailed to change log target�syslogsocketzFailed to change syslog socketZ	allowipv6�thread�dbfile�dbmaxmatchesz6dbmaxmatches setting was not in effect since no db yet�
dbpurgeagez4dbpurgeage setting was not in effect since no db yetZidlerZonTZoffFz*Invalid idle option, must be 'on' or 'off'�
ignoreselfZaddignoreipZdelignoreip�
ignorecommand�ignorecacheZ
addlogpath�r �tail�headz$File option must be 'head' or 'tail'z$Only one file can be added at a timeZ
dellogpath�logencodingZaddjournalmatchZdeljournalmatch�	prefregex�Zaddfailregex)�multipleZdelfailregexZaddignoreregexZdelignoreregex�usedns�findtime�datepattern�logtimezone�
maxmatches�maxretry�maxlines�bantimeZattemptzbantime.�banipZunbanipz--report-absent)�ifexistsZ	addactionZ	delaction�actionr
z  %rz9Invalid command %r (no set action or not yet implemented))SrZsetLogLevelr�getLogLevelZsetLogTarget�getLogTargetrZsetSyslogSocket�getSyslogSocketZsetIPv6IsAllowedZsetThreadOptionsZsetDatabase�getDatabase�filenamerrrZMSG�int�
maxMatches�purgeageZsetIdleJailZgetIdleJailZ
setIgnoreSelf�
getIgnoreSelfZaddIgnoreIP�getIgnoreIPZdelIgnoreIPZsetIgnoreCommand�getIgnoreCommandZsetIgnoreCache�getIgnoreCacher'�lower�
ValueErrorZ
addLogPath�
getLogPathZ
delLogPathZsetLogEncoding�getLogEncodingZaddJournalMatch�getJournalMatchZdelJournalMatchZsetPrefRegex�getPrefRegex�getRegexZaddFailRegex�getFailRegexZdelFailRegexZaddIgnoreRegex�getIgnoreRegexZdelIgnoreRegexZ	setUseDns�	getUseDnsZsetFindTime�getFindTimeZsetDatePattern�getDatePatternZsetLogTimeZone�getLogTimeZoneZ
setMaxMatches�
getMaxMatchesZsetMaxRetry�getMaxRetryZsetMaxLines�getMaxLinesZ
setBanTime�
getBanTimeZaddAttemptIP�
startswithZsetBanTimeExtra�getBanTimeExtraZsetBanIPr)�extend�json�loadsZ	addActionZ	delAction�	getAction�callable�getattr�setattr)r	rrAr.r0�dbr<�v�optrK�args�
actionnamerLr/Z	actionkey�actionvaluer
r
rZ__commandSet�s&


















  
zTransmitter.__commandSetcs|d}|dkr|jj�S|dkr,|jj�S|dkr>|jj�S|dkrP|jj�S|dkrx|jj�}|dkrndS|jS�n�|dkr�|jj�}|dkr�dS|jS�nd|dkr�|jj�}|dkr�dS|jS�n<|d	d
k�r�|jj	||dd��S|d	dk�r|jj
|�S|d	d
k�r |jj|�S|d	dk�r:|jj|�S|d	dk�rT|jj
|�S|d	dk�rn|jj|�S|d	dk�r�|jj|�S|d	dk�r�|jj|�S|d	dk�r�|jj|�}|�r�|j�SdS|d	dk�r�|jj|�S|d	dk�r|jj|�S|d	dk�r|jj|�S|d	dk�r6|jj|�S|d	dk�rP|jj|�S|d	dk�rj|jj|�S|d	dk�r�|jj|�S|d	dk�r�|jj|�S|d	dk�r�|jj|�S|d	dk�r�|jj|�S|d	dk�r|jj|t|�dk�o|dd kd!�S|d	jd"��r8|d	td"�d�}|jj ||�S|d	d#k�rZt!|jj"|�j#��S|d	d$k�r�|d}|d%}|jj$||��t%�|�S|d	d&k�r�|d}|jj$||���fd'd(�t&��D�S|d	d)k�r|d}|jj$||���fd*d(�t&��D�St'd+��dS),Nrr1r2r3r4r5r6r7rr!rZlogpathr>Zjournalmatchr8Zignoreipr9r:r?r@Z	failregexZignoreregexrBrCrDrErFrGrHrIrJz--with-time)ZwithTimezbantime.ZactionsrLr Zactionpropertiescs,g|]$}|jd�rtt�|��r|�qS)�_)rjrprq)�.0�key)rLr
r�
<listcomp>�sz,Transmitter.__commandGet.<locals>.<listcomp>Z
actionmethodscs*g|]"}|jd�rtt�|��r|�qS)ry)rjrprq)rzr{)rLr
rr|�sz6Invalid command (no get action or not yet implemented))(rrMrNrOZgetThreadOptionsrPrQrSrTr!r[r\r]rUrVrWrXr^r_r`rarbrcrdrerfrgrhriZ
getBanListr'rjrk�listZ
getActions�keysrorq�dirr)r	rr.rsrtrurwrxr
)rLrZ__commandGet�s�










zTransmitter.__commandGetcCsnt|�dkr|jj�St|�dkr6|d}|jj|�St|�dkrb|d}|d}|jj||d�Std��dS)Nrrr)�flavorzInvalid command (no status))r'rr$Z
statusJailr)r	rr.r�r
r
rr$s
zTransmitter.statusN)F)	�__name__�
__module__�__qualname__rrrr&r-r$r
r
r
rr%s
R
er)
�
__author__Z
__copyright__Z__license__r+rmZhelpersrrr@rr�rrr
r
r
r�<module>s