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/client/__pycache__/jailreader.cpython-36.opt-1.pyc
3

=�Z])!�@s�dZdZdZddlZddlZddlZddlZddlm	Z	m
Z
ddlmZddl
mZd	d
lmZd	dlmZmZmZee�ZGdd
�d
e
�ZGdd�de�ZdS)z
Cyril Jaquierz Copyright (c) 2004 Cyril JaquierZGPL�N�)�ConfigReaderUnshared�ConfigReader)�FilterReader)�ActionReader�)�version)�	getLogger�extractOptions�
splitwordsc@s`eZdZddd�Zedd��Zdd�Zdd	�Zd
d�Zdd
�Z	e
dd��Zdd�Zddd�Z
dS)�
JailReaderFcKs2tj|f|�||_d|_||_t�|_d|_dS)N)r�__init__�_JailReader__name�_JailReader__filter�_JailReader__force_enable�list�_JailReader__actions�_JailReader__opts)�self�nameZforce_enable�kwargs�r� /usr/lib/python3.6/jailreader.pyr
,szJailReader.__init__cCs|jS)N)r)rrrr�options4szJailReader.optionscCs
||_dS)N)r)r�valuerrr�setName8szJailReader.setNamecCs|jS)N)r)rrrr�getName;szJailReader.getNamecCs,tj|d�}|j|j�kr(td|j��|S)NZjailz%Jail %r was not found among available)r�readrZsections�
ValueError)r�outrrrr>s

zJailReader.readcCs|jp|jo|jjdd�S)N�enabledF)rr�get)rrrr�	isEnabledGszJailReader.isEnabledcCsBg}x8tj|�D]*}tjj|�r,|j|�qtjd|�qW|S)z|Given a path for glob return list of files to be passed to server.

		Dangling symlinks are warned about and not returned
		z4File %s is a dangling link, thus cannot be monitored)�glob�os�path�exists�append�logSys�warning)r%�pathList�prrr�_globKszJailReader._globc
Cs�dddgdddgg}dddgdddgd	d
dgdddgdddgdd
dgdddgdddgdddgdddgdddgdddgdddgdddgdddgdddgdddgdddgg}|jj�}t|d<�yxtj||j|dd�|_|js�td��|j�s�dS|jd}|�r�t	|�\}}|�std|��t
||j||j|j�d�|_
|j
j�}|�sTtd|��|j
j|jdd �tj||j|j
j�d!�nd|_
tjd"|j�tj||j|�|_|j�s�td#��|j
�r�|j
j|j��xD|jdjd$�D�].}y�|�s�w�t	|�\}	}
|	�std%|��|	jd&��rd|jjd'|jd(|
jd)tjj|	�d*�tjj|j�d+|	�tj|
�g�nNt|	|j|
|j|j�d�}|j�}|�r�|j|j�|jj|�ntd,|	��WnZtk
�r��YnDtk
�r}z&tj d-|dd.�t!d/||f��WYdd}~XnX�q�Wt"|j��s2tjd0|j�WnNtk
�r�}z0t#|�}tj$|�|j�sjt%�|_||jd1<dSd}~XnXdS)2N�boolr F�string�filter��backend�auto�intZmaxretryZfindtimeZbantimeZusedns�	failregex�ignoreregexZ
ignorecommandZ
ignoreself�ignoreipZignorecacheZdatepatternZlogtimezone�logencoding�logpath�actionZfail2ban_versionT)ZshouldExistzInit jail options failedzInvalid filter definition %r)�share_configZbasedirzUnable to read the filter %r)�allzknown/zNo filter set for jail %szRead jail options failed�
zInvalid action definition %rz.py�setZ	addactionZactnamerzaction.dzUnable to read action %rzCaught exception: %s)�exc_infoz!Error in action definition %r: %rzNo actions were defined for %szconfig-error)&Z_cfgZget_defaultsrr�
getOptionsrr�JailDefErrorr"r
rr:Z
getBaseDirrrZ
merge_sectionZgetCombinedr(r)�split�endswithrr'�popr$r%�splitext�join�json�dumpsr�	Exception�debugr�len�str�error�dict)
rZopts1stZoptsZdefsecZfltZ
filterNameZ	filterOpt�retZactZactNameZactOptr9�errrr?Ys�


(

zJailReader.getOptionsc	Cs�g}|jjd�}|r2|jdd|j|fgg�|S|jrH|j|jj���x�|jj�D�]�\}}|dk�r>|jjdd�jd�r�qVd}x�|jd�D]�}|j	d	d
�}t
|�d
kr�|n
|ddf\}}tj|�}	t
|	�dkr�t
jd|�x*|	D]"}
|d
7}|jd
|jd|
|g�q�Wq�W|�sFd|j}|�s2t|��t
j|�qV|dk�r^|jd
|jd|g�qV|dk�rn|}qV|dk�r�x�t|�D]}
|jd
|jd|
g��q�WqV|dk�r*g}x(|jd�D]}|dk�r�|j|��q�Wt
|�d
k�r|jd|jd||g�n&t
|��rF|jd
|jd||dg�qV|dkrV|jd
|j||g�qVWx:|jD]0}t|ttf��rv|j|j��n
|j|��qRW|jdd|j|g�|S)z�Convert read before __opts to the commands stream

		Parameters
		----------
		allow_missing : bool
		  Either to allow log files to be missing entirely.  Primarily is
		  used for testing
		 zconfig-errorz5Jail '%s' skipped, because of wrong configuration: %sr8r1NZsystemdrr<� r�headzNo file(s) found for glob %sr=Z
addlogpathz'Have not found any log file for %s jailr7r6Zaddignoreipr4r5r0z	multi-set�addr9r/r )r4r5)r9r/r )rr!�extendrr�convert�items�
startswithrA�rsplitrJrr,r(Znoticer'rr)rr�
isinstancerr�insert)rZallow_no_files�streamrO�optrZfound_filesr%�tailr*r+�msgr1ZipZmultiZregexr9rrrrT�sf

 








zJailReader.convertN)F)F)�__name__�
__module__�__qualname__r
�propertyrrrrr"�staticmethodr,r?rTrrrrr*s
	mrc@seZdZdS)r@N)r^r_r`rrrrr@sr@)�
__author__Z
__copyright__Z__license__r#rFZos.pathr$�reZconfigreaderrrZfilterreaderrZactionreaderrrZhelpersr	r
rr^r(rrHr@rrrr�<module>s]