HEX
Server: Apache/2.4.58 (Ubuntu)
System: Linux ns3133907 6.8.0-86-generic #87-Ubuntu SMP PREEMPT_DYNAMIC Mon Sep 22 18:03:36 UTC 2025 x86_64
User: cssnetorguk (1024)
PHP: 8.2.28
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/fail2ban/client/__pycache__/fail2bancmdline.cpython-312.pyc
�

G�kc!,����dZdZdZddlZddlZddlZddlZddlmZmZddl	m
Z
ddlmZm
Z
mZmZed	�Zd
�ZdZdZd
ZGd�d�Zej,ZGd�de�ZGd�de�Zy)zFail2Ban Developersz^Copyright (c) 2004-2008 Cyril Jaquier, 2012-2014 Yaroslav Halchenko, 2014-2016 Serg G. Brester�GPL�N�)�version�normVersion)�printFormatted)�	getLogger�str2LogLevel�getVerbosityFormat�BrokenPipeError�fail2banc�t�	t|�y#ttf$r}|jdk7r�Yd}~yd}~wwxYw)N� )�printr�IOError�errno)�s�es  �A/usr/lib/python3/dist-packages/fail2ban/client/fail2bancmdline.py�outputr#s6��	���(��	�'�"�	��W�W��]����	�s��7�2�7)�socket�pidfile�	logtarget�loglevel�syslogsocketT�c��eZdZd�Zd�Zed��Zd�Zdd�Zd�Z	d�Z
d�Zdd
�Ze
dd��Ze
dd��Ze
dd
��Zy	)�Fail2banCmdLinec�\�dx|_|_d|_d|_|j	�y)NF)�_argv�_args�
_configurator�
cleanConfOnly�	resetConf��selfs r�__init__zFail2banCmdLine.__init__4s*�� � �$�*�t�z��$���$���.�.��c	�,�dddddddtd�|_y)NFz
/etc/fail2banT�)�async�conf�force�
background�verboserr�timeout)�MAX_WAITTIME�_confr$s rr#zFail2banCmdLine.resetConf:s#��
�����
���	�$�*r'c��|jr|jSddlm}|�|_|jj|jd�|jS)Nr))�Configuratorr+)r!�configuratorr3�
setBaseDirr1)r%r3s  rr4zFail2banCmdLine.configuratorFsM��	���
�
�
��(�#�~�$��������
�
�6� 2�3�	
�	�	�r'c�^�|jD]}|j||j|<� y�N)�__dict__)r%�obj�os   r�applyMemberszFail2banCmdLine.applyMembersRs+���<�<�&�a��l�l�1�o�4�=�=���&r'c�T�|stdtz�ytt��y)N�
Fail2Ban v)rrr)r%�shorts  r�dispVersionzFail2banCmdLine.dispVersionVs��	�	�,��
 �!�	�+�-�r'c��tjj|jd�}t	d|zdz|jd�sdndz�t	d�t	dtzdz�t	d	�t	d�t	d
�t	d�t	d�t	d
�t	d�t	d�t	d�t	d�t	d�t	d�t	d�t	d�t	d�t	d�t	d�t	d�t	d�t	d�t	d�t	d�t	d�t	d�|jd�s t	d�t	d �t�t	d�t	d!�y")#z2 Prints Fail2Ban command line options and exits
		rzUsage: z
 [OPTIONS]�serverz
 <COMMAND>�r=z5 reads log file that contains password failure reportz=and bans the corresponding IP addresses using firewall rules.zOptions:z3    -c, --conf <DIR>        configuration directoryz'    -s, --socket <FILE>     socket pathz(    -p, --pidfile <FILE>    pidfile pathzl    --pname <NAME>          name of the process (main thread) to identify instance (default fail2ban-server)z)    --loglevel <LEVEL>      logging levelz^    --logtarget <TARGET>    logging target, use file-name or stdout, stderr, syslog or sysout.z    --syslogsocket auto|<FILE>z=    -d                      dump configuration. For debuggingz[    --dp, --dump-pretty     dump the configuration using more human readable representationz\    -t, --test              test configuration (can be also specified with start parameters)z,    -i                      interactive modez.    -v                      increase verbosityz.    -q                      decrease verbosityzN    -x                      force execution of the server (remove socket file)z@    -b                      start server in background (default)z6    -f                      start server in foregroundzj    --async                 start server in async mode (for internal usage only, don't read configuration)zn    --timeout               timeout to wait for the server (for internal usage only, don't read configuration)zG    --str2sec <STRING>      convert time abbreviation format to secondsz5    -h, --help              display this help messagezX    -V, --version           print the version (-V returns machine-readable short format)zCommand:z:Report bugs to https://github.com/fail2ban/fail2ban/issuesN)�os�path�basenamerr�endswithrr)r%�callers  r�	dispUsagezFail2banCmdLine.dispUsage\se���7�7���D�J�J�q�M�*�&���6�	�,�	&�f�o�o�h�>W�,�]_�	`�a���*����	�"Y�	Y�Z��	H�I���*�����	>�?��	2�3��	3�4��	w�x��	4�5��	i�j��	)�*��	H�I��	f�g��	g�h��	7�8��	9�:��	9�:��	Y�Z��	K�L��	A�B��	u�v��	y�z��	R�S��	@�A��	c�d�	����	"�	�"�:�	�*������*��	E�Fr'c��|D�]�}|d}|dvr|d|jd<� |dvr|d|jd<�7|dvr|d|jd<�N|d	vr|d
k(rdnd|jd
<�i|dvrd|_d|jd<��|dk(r|jdxxdz
cc<��|dk(r|jdxxdzcc<��|dk(rd|jd<��|dk(rd|jd<��|dk(rd|jd<��|dk(rd|jd<��|dk(rd|jd<��)|dk(r)ddlm}|j	|d�|jd<��W|d k(r%ddlm}t|j	|d��y|d!vr|j
�y|d"vr|j|d#k(�y|jd$�s���|d|j|dd%<���y%)&z! Gets the command line options
		r)z-cz--confr)r+)z-sz--socketr)z-pz	--pidfiler)�-dz--dpz
--dump-prettyrJTr�dump)z-tz--test�testz-vr.z-qz-xr,z-i�interactivez-br-z-fFz--asyncr*z	--timeout)�MyTimer/z	--str2sec)z-hz--help)�-Vz	--versionrOz--N)	r1r"�
server.mytimerN�str2secondsrrHr?�
startswith)r%�optList�optr:rNs     r�__getCmdLineOptionsz#Fail2banCmdLine.__getCmdLineOptions�s����)!�c�
�1�v�1�����Q��D�J�J�v��	�
���q�6�D�J�J�x��	�
 � ���F�D�J�J�y��	�
,�,�!"�d����D�J�J�v��	�
���D���D�J�J�v��	�T�	��J�J�y��Q���	�T�	��J�J�y��Q���	�T�	��D�J�J�w��	�T�	� $�D�J�J�}��	�T�	�#�D�J�J�|��	�T�	�$�D�J�J�|��	�Y���D�J�J�w��	�[��&�"�.�.�s�1�v�6�D�J�J�y��	�[��&�
�6���c�!�f�%�&��	�
���N�N���	�
 � ����Q�$�Y���	���T���a�&�D�J�J��!�"���S)!�T
r'c�|�d}	|jdu}||_tjd|dd�	d}gd�}tj|jdd||�\}|_|j|�}|�|Stjd|j|j�|�rIt�rB|jd}|dkr$tjtj�n�|dk(r$tjtj�nu|d	k(r$tjtj�nL|d
k(r$tjtj �n#tjtj"�tj$t&j(�}t+|dz
�}	tj,|	�}
|j/|
�tj1|�d}t2D]l}|jj5|d��� |s4|j6j9�|j6j;�}||vs�[|||j|<�ntjd|jd�t=|jd
�}
tjd|jdtj>|
�|jd�d}|jj5dd�re|r|jA�\}}d}�#|jC||jdd	k(�ntEd�|jj5dd�s|S|jj5dd�rF|rd}|jA�\}}|stGd��tI|j�s
tEd�|Sy#tj
$r|j
�YywxYw#tF$r�tJ$r2}tEd|���|d	kDrtjM|�Yd}~yd}~wwxYw)Nr)zUsing start params %szhc:s:p:xfbdtviqV)z	loglevel=z
logtarget=z
syslogsocket=rLr*zconf=zpidfile=zpname=zsocket=ztimeout=zstr2sec=�helpr�dpzdump-prettyFz  conf: %r, args: %rr.rr�zUsing socket file %srrz%Using pid file %s, [%s] logging to %srrTrKzEERROR: The configuration stream failed because of the invalid syntax.rLz ERROR: test configuration failedz$OK: configuration test is successfulzERROR: )'r�logSys�info�getoptr �GetoptErrorrH�#_Fail2banCmdLine__getCmdLineOptions�debugr1�
PRODUCTION�setLevel�logging�ERROR�WARNING�INFO�DEBUG�
HEAVYDEBUG�
StreamHandler�sys�stderrr
�	Formatter�setFormatter�
addHandler�
CONFIG_PARAMS�getr4�	readEarly�getEarlyOptionsr	�getLevelName�
readConfig�
dumpConfigr�ServerExecutionException�len�	Exception�	exception)r%�argvr.�initial�cmdOpts�cmdLongOptsrS�ret�logout�fmt�	formatterr+r:�llev�readcfg�streamrs                 r�initCmdLinezFail2banCmdLine.initCmdLine�st��
�'�`��j�j�D� �7��4�:�	�;�;�&��Q�R��1�� �G�E�K�!�-�-��
�
�1�2����M��G�T�Z�

�	!�	!�'�	*�3�	�o��J�	�<�<�&��
�
�D�J�J�?�
�*��j�j��#�G��!�|��_�_�W�]�]�#�	�A���_�_�W�_�_�%�	�A���_�_�W�\�\�"�	�A���_�_�W�]�]�#��_�_�W�'�'�(�
�
"�
"�3�:�:�
.�F��W�Q�Y�
'�C��!�!�#�&�I�
���	�"�
���f���4���q��z�z�~�~�a���&��
���!�!�#�
�
�
�
.�
.�
0�d�	�T�	��1�g�d�j�j��m�
�
�;�;�%�t�z�z�(�';�<��t�z�z�*�-�
.�4�	�;�;�6��J�J�y��7�/�/��5�t�z�z�+�7N�P��7�
�j�j�n�n�V�U�#���?�?�$�[�S�&��W�
��	�_�_�V�T�Z�Z��/�1�4�5��S�T��:�:�>�>�&�%�(��Z�
�j�j�n�n�V�U�#���W��?�?�$�[�S�&��#�$F�G�G��t�z�z�?��2�3��Z���U�
�
���N�N�����V
"�	��	��	��
��
��k�
���Q��
��	�sU�.O7�2O�%O7�:FO7�:O7�DO7�+A!O7�#O4�1O7�3O4�4O7�7P;�	(P6�6P;Nc���d}	|jj�|jj�|jj||j|j
��}|jj
|jjdd���|jj�}||fS#t$r'}tjd|z�d}Yd}~||fSd}~wwxYw)N)�ignoreWrongrKF)�allow_no_fileszFailed during configuration: %s)r4�Reload�readAll�
getOptionsr1r"�convertToProtocolro�getConfigStreamrwrZ�error)r%�jailr�r}rs     rrszFail2banCmdLine.readConfigs����&�
�������������	
�	�	�	%�	%�d�D�J�J��&�&�&�
&�
(�3����&�&��:�:�>�>�&�%�0�'�2����-�-�/�6�

�f����
��	�<�<�1�A�5�6�	�3�	�f�����s�B7B?�?	C/�C*�*C/c�L��|rddlm��fd�}nt}|D]
}||��y)Nr)�pformatc�.��t�|dd���y)Ni�r)�width�indent)r)rr�s �r�_outputz+Fail2banCmdLine.dumpConfig.<locals>._output.s���
�7�1�D��+�,r'T)�pprintr�r)�cmd�prettyr��cr�s    @rrtzFail2banCmdLine.dumpConfig*s.�����-��7���a�
�1�:��	
r'c�l�tjj�	tjj	�ttd�r&tjrtj|�ytj|�y#ttf$r}|jdk7r�Yd}~yd}~wwxYw)N�exitr)rirj�close�stdout�flush�hasattrr�rC�_exitrrr)�coders  rr�zFail2banCmdLine._exit9sw���*�*����	
��:�:����
�c�6��s�x�x��H�H�T�N��H�H�T�N��
�7�	#�
��g�g��m�	���
�s�AB
�4B
�
B3�B.�.B3c��tjd|�tj�tj|�y)NzExit with code %s)rZr_rb�shutdownrr�)r�s rr�zFail2banCmdLine.exitHs+���,�,�"�D�)�	��������r')Fr7)r)�__name__�
__module__�__qualname__r&r#�propertyr4r;r?rHr^r�rs�staticmethodrtr�r��r'rrr2s���
�����&��'G�R-�^b�H�$�	��	��
��
����r'rc��eZdZy)�
ExitExceptionN�r�r�r�r�r'rr�r�U���r'r�c��eZdZy)ruNr�r�r'rruruYr�r'ru)�
__author__�
__copyright__�__license__r\rbrCrirr�protocolr�helpersrr	r
rrZrrnr`r0rr�rwr�rur�r'r�<module>r�s���&#�
�p�
���
��	�
�*�%�R�R�
�:�	��	�O�
�
�
���\�\�@	�����I���y�r'