403Webshell
Server IP : 172.67.131.151  /  Your IP : 104.23.197.57
Web Server : Apache
System : Linux keen-cori.18-142-40-148.plesk.page 5.15.0-1084-aws #91~20.04.1-Ubuntu SMP Fri May 2 06:59:36 UTC 2025 x86_64
User : simottodesign.com_2tntp341vs7 ( 10011)
PHP Version : 8.3.31
Disable Function : opcache_get_status
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /lib/python3/dist-packages/fail2ban/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/fail2ban/__pycache__/helpers.cpython-38.pyc
U

������@s*dZdZddlZddlZddlZddlZddlZddlZddlZddl	m
Z
ddlmZddl
Z
zddlZe�d�ZWndZYnXe��Ze�d�r�ejr�ejjdk	r�ejj�d�s�ejjZned	d
�dD��r�dZed
fdd�Zdd�Zdd�Zdd�Zdd�Zdd�ZGdd�de�ZGdd�dej�Z de_!dGdd �Z"ej#j$Z%d!d"�Z&e&ej#_$ej'j(Z)d#d$�Z*e*ej'_(d%d&�Z+d'd(�Z,dHd+d,�Z-d-d.�Z.d/d0�Z/d1d2�Z0d3d4�Z1e�2d5ej3�Z4e�2d6ej3�Z5e�2d7ej3�Z6d8d9�Z7d:d;�Z8d<Z9e�2d=�Z:dId@dA�Z;e�rdBdC�Z<ndDdC�Z<GdEdF�dFe�Z=dS)Jz<Cyril Jaquier, Arturo 'Buanzo' Busleiman, Yaroslav Halchenko�GPL�N)�Lock�)�MyTimezlibcap.so.2ZANSI_ccs|]}t�|�dkVqdS))N�N)�os�getenv��.0�v�r�2/usr/lib/python3/dist-packages/fail2ban/helpers.py�	<genexpr>0sr)�LANGUAGE�LC_ALL�LC_CTYPE�LANG�UTF-8�strictc	CsRzt|t�r|�||�WS|WSttfk
rL|dkr<�|�|d�YSXdS)Nr�replace)�
isinstance�bytes�decode�UnicodeDecodeError�UnicodeEncodeError)�x�enc�errorsrrr
�
uni_decode@s
rcCst|t�st|�S|�td�S)Nr)rr�strr�
PREFER_ENC�rrrr
�
uni_stringIs
r"cCs
t|d�S)Nr)rr!rrr
�	uni_bytesMsr#cCst|t�st|�S|��dkS)N)�1�on�true�yes)rr�bool�lower)�valrrr
�_as_boolPs
�r+cCs"t��dd�\}}|jt|�fS)z+ Consistently format exception information N�)�sys�exc_info�__name__r")Zcla�excrrr
�formatExceptionInfoUsr1cCsRtj�|�}|�d�r"|dd�}|tddg�krNtj�tj�|��d|}|S)zaCustom function to include directory name if filename is too common

	Also strip .py at the end
	z.pyN����base�__init__�.)r�path�basename�endswith�set�dirname)�sr3rrr
�	mbasenameas
r<c@s"eZdZdZddd�Zdd�ZdS)	�	TraceBackz7Customized traceback to be included in debug messages
	FcCsd|_||_dS)z�Initialize TrackBack metric

		Parameters
		----------
		compress : bool
		  if True then prefix common with previous invocation gets
		  replaced with ...
		rN)�_TraceBack__prev�_TraceBack__compress)�self�compressrrr
r4rs	zTraceBack.__init__c	Cs�tjdd�dd�}dd�|D�}dd�|D�}|dg}|dd�D]@}|d|d	dkr||d	dd
|d7<qF|�|�qFd�dd�|D��}|jr�|}tj�|j|f�}t	�
d
d|�}|dkr�d|t|�d�}||_|S)N�d)�limit���cSs2g|]*}t|d�tj�|d�t|d�g�qS)rr)r<rr6r:r�r
rrrr
�
<listcomp>�sz&TraceBack.__call__.<locals>.<listcomp>cSs6g|].}|ddks|d�d�s|d|dg�qS)r)Zunittestzlogging.__init__rz	/unittestr,)r8)r
�errr
rF�s�rr���z,%s�>cSs$g|]}dt|d�|df�qS)z%s:%srr)r<rErrr
rF�s��z>[^>]*$rz...)�	traceback�
extract_stack�append�joinr?rr6�commonprefixr>�re�sub�len)	r@Zftb�entriesZentries_out�entryZsftbZ	prev_nextZ
common_prefixZcommon_prefix2rrr
�__call__~s*�

�zTraceBack.__call__N)F)r/�
__module__�__qualname__�__doc__r4rTrrrr
r=ns
r=c@s eZdZdZdd�Zdd�ZdS)�FormatterWithTraceBackz}Custom formatter which expands %(tb) and %(tbc) with tracebacks

	TODO: might need locking in case of compressed tracebacks
	cOs4tjj|f|�d|i|��d|k}t|d�|_dS)N�fmtz%(tbc)s)rA)�logging�	Formatterr4r=�_tb)r@rY�args�kwargsrArrr
r4�szFormatterWithTraceBack.__init__cCs|��|_|_tj�||�S�N)r\Ztbc�tbrZr[�format)r@�recordrrr
ra�szFormatterWithTraceBack.formatN)r/rUrVrWr4rarrrr
rX�srXFcCsh|rt|j�r|�|jd�|r,dd�|_dd�tj_tjrdztj	��WnYnXt�
d�dS)NrcSsdSr_rrrrr
�<lambda>��z!__stopOnIOError.<locals>.<lambda>cSsdSr_r�r@rrr
rc�rd)rQ�handlers�
removeHandler�closerZ�
StreamHandler�flush�
exitOnIOErrorr-�stderr�exit)�logSysZlogHndlrrrr
�__stopOnIOError�s
roc
Ks�zt||||f|�Wn�ttfk
rP}z|jdkr>t|��W5d}~XYn�tk
r�}zbzPd|t|�ffddd�|D�fffD]&}zt||f|��Wq�Yq�Xq�WnYnXW5d}~XYnXdS)a�Safe log inject to avoid possible errors by unsafe log-handlers, 
	concat, str. conversion, representation fails, etc.

	Used to intrude exception-safe _log-method instead of _log-method 
	of Logger class to be always safe by logging and to get more-info about.

	See testSafeLogging test-case for more information. At least the errors
	covered in phase 3 seems to affected in all known pypy/python versions 
	until now.
	� Nzlogging failed: %r on %sz
  args: %rcSsg|]}t|��qSr)r")r
�arrr
rF�sz__safeLog.<locals>.<listcomp>)�	__origLog�BrokenPipeError�IOError�errnoro�	Exceptionr")r@�level�msgr]r^rGrrr
�	__safeLog�s"
�ryc
CsNzt|�Wn<ttfk
rH}z|jdkr6td|��W5d}~XYnXdS)zQSafe flush inject stopping endless logging on closed streams (redirected pipe).
	rpN)�__origLogFlushrsrtruro)r@rGrrr
�__safeLogFlush�s

r{cCs$d|krd|�d�d}t�|�S)zBGet logging.Logger instance with Fail2Ban logger name convention
	r5zfail2ban.%srH)�
rpartitionrZ�	getLogger��namerrr
r}�sr}cCsTz.t|t�s|��rt|�}ntt|���}Wn tk
rNtd|��YnX|S)NzInvalid log level %r)r�int�isdigit�getattrrZ�upper�AttributeError�
ValueError)�valueZllrrr
�str2LogLevel�s
r�� %(message)sTcCsn|dkr@|dkrd|}|dkr*d|}qTd|}|rTd|}nd|}|rTd	|}|sjt�d
dd�|�}|S)
z(Custom log format for the verbose runs
	r�z6 | %(module)15.15s-%(levelno)-2d: %(funcName)-20.20s |r,zB +%(relativeCreated)5d %(thread)X %(name)-25.25s %(levelname)-5.5sz %(thread)X %(levelname)-5.5sz %(asctime)-15sz)%(name)-24s[%(process)d]: %(levelname)-7sz%(asctime)s z(?<=\))-?\d+(?:\.\d+)?scSsdS)Nr;r)�mrrr
rc
rdz$getVerbosityFormat.<locals>.<lambda>)rOrP)�	verbosityrYZaddtime�paddingrrr
�getVerbosityFormat�s

r�cCs td�jddd�t�|||�S)z>Except hook used to log unhandled exceptions to Fail2Ban log
	�fail2banz Unhandled exception in Fail2Ban:T)r.)r}�criticalr-�__excepthook__)�exctyper�rJrrr
�
excepthooks
�r�cCs(|sgStttdd�t�d|�D���S)z�Helper to split words on any comma, space, or a new line

	Returns empty list if input is empty (or None) and filters
	out empty entries
	cSsg|]}|���qSr)�stripr	rrr
rFszsplitwords.<locals>.<listcomp>z[\s,]+)�list�filterr(rO�split)r;rrr
�
splitwordssr�cCs|r||�S|S)zHelper to merge dicts.
	r�r�yrrr
�_merge_dictssr�cCs||�S)zBHelper to merge dicts to guarantee a copy result (r is never x).
	rr�rrr
�_merge_copy_dicts&sr�z^([^\[]+)(?:\[(.*)\])?\s*$zf\s*([\w\-_\.]+)=(?:"([^"]*)"|\'([^\']*)\'|([^,\]]*))(?:,|\]\s*\[|$|(?P<wrngA>.+))|,?\s*$|(?P<wrngB>.+)zs(?:[^\[\s]+(?:\s*\[\s*(?:[\w\-_\.]+=(?:"[^"]*"|\'[^\']*\'|[^,\]]*)\s*(?:,|\]\s*\[)?\s*)*\])?\s*|\S+)(?=\n\s*|\s+|$)cCs�t�|�}|std��|��\}}t�}|r�t�|�D]�}|�d�rptd|�d�|�d�|�d�dd�f��|�d�r�td|�d�|�d�dd�f��|�d�}|s�q6d	d
�|�ddd
�D�d}|�	�||�	�<q6||fS)Nzunexpected option syntaxZwrngAz+unexpected syntax at %d after option %r: %srr�ZwrngBz'expected option, wrong syntax at %d: %scSsg|]}|dk	r|�qSr_r)r
r*rrr
rFKsz"extractOptions.<locals>.<listcomp>r,r��)
�
OPTION_CRE�matchr��groups�dict�OPTION_EXTRACT_CRE�finditer�group�startr�)�optionr��option_nameZoptstrZoption_optsZoptmatch�optr�rrr
�extractOptions;s8

�
�
��r�cCs
t�|�Sr_)�OPTION_SPLIT_CRE�findall)r�rrr
�splitWithOptionsPsr�r�z<([^ <>]+)>rrcCs�tj}|}t|�}t�}t|d�}i}d}	|��D�]�}
|
|ks2|
|krJq2|r^t|�|
��r^q2t||
�}}||�}
|�|
i�}|
�r�|
�	d�}||kr�|||
�
��}
q�||
ks�|�|d�tkr�td|
|||f��d}|r�|�|d|�}|dk�r |�|�}|dk�r |dk	�r ||�}|dk�r:|||
�
��}
q�t
|t��sNt|�}|�d||�}|�|d�d||<|||
���}
q�||k�r�||��r�|||
<d	}	t|�t|�k�r�|��}|||
<d
|kr2|�|
�q2|	s&�q�q&|S)a|Sort out tag definitions within other tags.
	Since v.0.9.2 supports embedded interpolation (see test cases for examples).

	so:		becomes:
	a = 3		a = 3
	b = <a>_3	b = 3_3

	Parameters
	----------
	inptags : dict
		Dictionary of tags(keys) and their values.

	Returns
	-------
	dict
		Dictionary of tags(keys) and their values, with tags
		within the values recursively replaced.
	�
getRawItemFrzpproperties contain self referencing definitions and cannot be resolved, fail tag: %s, found: %s in %s, value: %sN�?z<%s>rT�<)�TAG_CRE�searchr9�hasattr�keys�callabler�r"�getr��end�MAX_TAG_REPLACE_COUNTr�rrrr��id�copy�add)ZinptagsZconditional�ignoreZaddreplZ
tre_searchZtags�doneZ	noRecReplZ	repCountsZrepFlag�tagr�Zorgvalr�ZrplcZrtag�replrrr
�substituteRecursiveTags^sj


��




r�cCs*z|��}t�d|�WnYnXdS)z�Helper to set real thread name (used for identification and diagnostic purposes).

		Side effect: name can be silently truncated to 15 bytes (16 bytes with NTS zero)
		�N)�encode�_libcapZprctlr~rrr
�prctl_set_th_name�s
r�cCsdSr_rr~rrr
r��scs<eZdZdZe�ZdZ�fdd�Zdd�Zd
dd	�Z	�Z
S)�	BgServicez{Background servicing

	Prevents memory leak on some platforms/python versions, 
	using forced GC in periodical intervals.
	Ncs|jstt|��|�|_|jSr_)�	_instance�superr��__new__)�cls��	__class__rr
r��s�zBgService.__new__cCs2d|_d|_d|_|j|_ttd�r.t�d�dS)Ni��rB�
set_thresholdr)�_BgService__serviceTime�_BgService__periodTime�_BgService__threshold�_BgService__countr��gcr�rerrr
r4�s
zBgService.__init__FcCs�|jd8_|s.|jdks*t��|jkr.dStj�|�s>dSz>t��|jkrVW�,dSt�	�t��|j
|_|j|_W�dStj��XdS)NrrFT)r�r�timer�r��_mutex�acquire�releaser�Zcollectr�r�)r@�force�waitrrr
�service�szBgService.service)FF)r/rUrVrWrr�r�r�r4r��
__classcell__rrr�r
r��sr�)NN)r�TT)rrN)>�
__author__�__license__r��localerZrrOr-rJ�	threadingrZ
server.mytimer�	importlib�ctypes�CDLLr��getpreferredencodingr �
startswith�stdout�encoding�allrr"r#r+r1r<�objectr=r[rXrkro�Logger�_logrrryrirjrzr{r}r�r�r�r�r�r��compile�DOTALLr�r�r�r�r�r�r�r�r�r�rrrr
�<module>s�

 
	
.
	



��	
�
c


Youez - 2016 - github.com/yon3zu
LinuXploit