CasperSecurity

Current Path : /usr/lib/python3/dist-packages/fail2ban/__pycache__/
Upload File :
Current File : //usr/lib/python3/dist-packages/fail2ban/__pycache__/helpers.cpython-310.pyc

o

;s*b�E�@s�dZdZddlZddlZddlZddlZddlZddlZddlZddl	m
Z
ddlmZddl
Z
zddlZe�d�ZWndZYe��at�d�rkejr`ejjdur`ejj�d�s`ejjaned	d
�dD��rkdaejd
krydd�Zet�[ejd
kr�tdfdd�Zdd�Zntdfdd�Ze����dkr�dd�ZneZdd�Zdd�Zdd�Z Gdd�de!�Z"Gdd �d ej#�Z$d!e_%dMd"d#�Z&ze'Z'Wne(y�e)Z'Ynwej*j+Z,d$d%�Z-e-ej*_+ej.j/Z0d&d'�Z1e1ej._/d(d)�Z2d*d+�Z3dNd.d/�Z4d0d1�Z5d2d3�Z6ejd4k�re7e8d5e9d6��nd7d8�Z:d9d:�Z;e�8d;ej<�Z=e�8d<ej<�Z>e�8d=ej<�Z?d>d?�Z@d@dA�ZAdBZBe�8dC�ZC	D	dOdFdG�ZDe�rLdHdI�ZEndJdI�ZEGdKdL�dLe!�ZFdS)Pz<Cyril Jaquier, Arturo 'Buanzo' Busleiman, Yaroslav Halchenko�GPL�N)�Lock�)�MyTimezlibcap.so.2�ANSI_ccs�|]
}t�|�dvVqdS))N�N)�os�getenv��.0�v�r
�2/usr/lib/python3/dist-packages/fail2ban/helpers.py�	<genexpr>0s�r)�LANGUAGE�LC_ALL�LC_CTYPE�LANGzUTF-8��cCs�t����}|dkrA|t��krCt}t|d�s5z
ddlm}|dd�}Wnty4t�	t�t}Ynwt|d�rE|�
|�dSdSdSdS)N�ASCII�setdefaultencodingr)�load_dynamic�_sys�sys)r�getdefaultencoding�upper�
PREFER_ENC�hasattr�impr�ImportError�	importlib�reloadr)�encoding�oder�__ldmr
r
r�__resetDefaultEncoding8s

�
�
r&�strictc	C�Lzt|t�r
|�||�WS|WSttfy%|dkr�|�|d�YSw�Nr'�replace)�
isinstance�bytes�decode�UnicodeDecodeError�UnicodeEncodeError��x�enc�errorsr
r
r�
uni_decodeY�
�r4cCst|t�s	t|�S|�td�S�Nr*)r+r,�strr-r�r1r
r
r�
uni_stringb�
r9c	Cr(r))r+r7�encoder.r/r0r
r
rr4gr5cCst|t�s	t|�S|�td�Sr6)r+r7r;rr8r
r
rr9qr:cCst|t�s	t|�S|��dvS)N)�1�on�true�yes)r+r7�bool�lower)�valr
r
r�_as_boolys
�rCcCs"t��dd�\}}|jt|�fS)z+ Consistently format exception information N�)r�exc_info�__name__r9)�cla�excr
r
r�formatExceptionInfo~srIcCsRtj�|�}|�d�r|dd�}|tddg�vr'tj�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)�srKr
r
r�	mbasename�s
rTc@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
rrL�s	
zTraceBack.__init__c	Cs�tjdd�dd�}dd�|D�}dd�|D�}|dg}|dd�D] }|d|d	dkr>|d	dd
|d7<q#|�|�q#d�dd�|D��}|jrt|}tj�|j|f�}t	�
d
d|�}|dkrqd|t|�d�}||_|S)N�d)�limit���cSs2g|]}t|d�tj�|d�t|d�g�qS)rr)rTrrNrRr7�rr1r
r
r�
<listcomp>�s&�z&TraceBack.__call__.<locals>.<listcomp>cSs6g|]}|ddvs|d�d�s|d|dg�qS)r)�unittestzlogging.__init__rz	/unittestrD)rP)r�er
r
rr^�s��rr���z,%s�>cSs$g|]}dt|d�|df�qS)z%s:%srr)rTr]r
r
rr^�s
�
�z>[^>]*$rz...)�	traceback�
extract_stack�append�joinrWrrN�commonprefixrV�re�sub�len)	rX�ftb�entries�entries_out�entry�sftb�	prev_next�
common_prefix�common_prefix2r
r
r�__call__�s*�

�zTraceBack.__call__N)F)rF�
__module__�__qualname__�__doc__rLrsr
r
r
rrU�s
rUc@s eZdZdZdd�Zdd�ZdS)�FormatterWithTraceBackz}Custom formatter which expands %(tb) and %(tbc) with tracebacks

	TODO: might need locking in case of compressed tracebacks
	cOs6tjj|g|�Rd|i|��d|v}t|d�|_dS)N�fmtz%(tbc)s)rY)�logging�	FormatterrLrU�_tb)rXrx�args�kwargsrYr
r
rrL�szFormatterWithTraceBack.__init__cCs|��|_|_tj�||�S�N)r{�tbc�tbryrz�format)rX�recordr
r
rr��szFormatterWithTraceBack.formatN)rFrtrurvrLr�r
r
r
rrw�srwFcCsh|rt|j�r|�|jd�|rdd�|_dd�tj_tjr2ztj	��WnYt�
d�dSdS)NrcS�dSr~r
r
r
r
r�<lambda>��z!__stopOnIOError.<locals>.<lambda>cSr�r~r
�rXr
r
rr��r�)rj�handlers�
removeHandler�closery�
StreamHandler�flush�
exitOnIOErrorr�stderr�exit)�logSys�logHndlrr
r
r�__stopOnIOError�s
�r�c
Ks�zt||||fi|��WdSttfy&}z
|jdkr!t|��d}~wtyk}z:z'd|t|�ffddd�|D�fffD]}zt||g|�R�Wq@Yq@WnYWYd}~dSWYd}~dSd}~ww)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
)r9)r�ar
r
rr^��z__safeLog.<locals>.<listcomp>)�	__origLog�BrokenPipeError�IOError�errnor��	Exceptionr9)rX�level�msgr|r}r`r
r
r�	__safeLog�s,
������r�c
CsBzt|�WdSttfy }z|jdkrtd|��d}~ww)zQSafe flush inject stopping endless logging on closed streams (redirected pipe).
	r�N)�__origLogFlushr�r�r�r�)rXr`r
r
r�__safeLogFlush
s

��r�cCs$d|vr
d|�d�d}t�|�S)zBGet logging.Logger instance with Fail2Ban logger name convention
	rMzfail2ban.%sra)�
rpartitionry�	getLogger��namer
r
rr�s
r�cCsPzt|t�s
|��rt|�}W|Stt|���}W|Sty'td|��w)NzInvalid log level %r)r+�int�isdigit�getattrryr�AttributeError�
ValueError)�value�llr
r
r�str2LogLevels
���r�� %(message)sTcCsn|dkr |dkrd|}|dkrd|}nd|}|rd|}n
d|}|r*d	|}|s5t�d
dd�|�}|S)
z(Custom log format for the verbose runs
	rrz6 | %(module)15.15s-%(levelno)-2d: %(funcName)-20.20s |rDzB +%(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)NrSr
)�mr
r
rr�8r�z$getVerbosityFormat.<locals>.<lambda>)rhri)�	verbosityrx�addtime�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)rE)r��criticalr�__excepthook__)�exctyper�rcr
r
r�
excepthook<s�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
rr^Kr�zsplitwords.<locals>.<listcomp>z[ ,
]+)�list�filterr@rh�split)rSr
r
r�
splitwordsCs r�)r�z�if 1:
	def _merge_dicts(x, y):
		"""Helper to merge dicts.
		"""
		if y:
			return {**x, **y}
		return x
	
	def _merge_copy_dicts(x, y):
		"""Helper to merge dicts to guarantee a copy result (r is never x).
		"""
		return {**x, **y}
	�execcCs|}|r
|��}|�|�|S)zHelper to merge dicts.
		��copy�update�r1�y�rr
r
r�_merge_dicts\s

r�cCs|��}|r|�|�|S)zCHelper to merge dicts to guarantee a copy result (r is never x).
		r�r�r
r
r�_merge_copy_dictsds
r�z^([^\[]+)(?:\[(.*)\])?\s*$z@([\w\-_\.]+)=(?:"([^"]*)"|\'([^\']*)\'|([^,\]]*))(?:,|\]\s*\[|$)zs(?:[^\[\s]+(?:\s*\[\s*(?:[\w\-_\.]+=(?:"[^"]*"|\'[^\']*\'|[^,\]]*)\s*(?:,|\]\s*\[)?\s*)*\])?\s*|\S+)(?=\n\s*|\s+|$)cCsvt�|�}|s	dS|��\}}t�}|r7t�|�D]}|�d�}dd�|�ddd�D�d}|��||��<q||fS)	N�NNrcSsg|]}|dur|�qSr~r
)rrBr
r
rr^�sz"extractOptions.<locals>.<listcomp>rDr�r)�
OPTION_CRE�match�groups�dict�OPTION_EXTRACT_CRE�finditer�groupr�)�optionr��option_name�optstr�option_opts�optmatch�optr�r
r
r�extractOptions|s

��r�cCs
t�|�Sr~)�OPTION_SPLIT_CRE�findall)r�r
r
r�splitWithOptions�s
r��z<([^ <>]+)>rr
cCs�tj}|}t|�}t�}t|d�}i}	d}	|��D]�}
|
|vs$|
|vr%q|r/t|�|
��r/qt||
�}}||�}
|�|
i�}|
r�|
�	d�}||vrT|||
�
��}
qA||
ks`|�|d�tkrjtd|
|||f��d}|rw|�|d|�}|dur�|�|�}|dur�|dur�||�}|dur�|||
�
��}
qAt
|t�s�t|�}|�d||�}|�|d	�d||<|||
���}
|
sC||kr�||�r�|||
<d}	t|�t|�kr�|��}|||
<d
|vr�|�|
�q|	s�	|Sq)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.
	�
getRawItemTFrzpproperties contain self referencing definitions and cannot be resolved, fail tag: %s, found: %s in %s, value: %sN�?z<%s>r�<)�TAG_CRE�searchrQr�keys�callabler�r9�getr��end�MAX_TAG_REPLACE_COUNTr�r+r7r*�start�idr��add)�inptags�conditional�ignore�addrepl�
tre_search�tags�done�	noRecRepl�	repCounts�repFlag�tagr��orgvalr��rplc�rtag�replr
r
r�substituteRecursiveTags�sj


��
�'��r�cCs<ztjdkr|��}nt|�}t�d|�WdSYdS)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)
		r�N)r�version_infor;r,�_libcap�prctlr�r
r
r�prctl_set_th_name�s

r�cCr�r~r
r�r
r
rr�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|jstt|��|�|_|jSr~)�	_instance�superr��__new__)�cls��	__class__r
rr�s�zBgService.__new__cCs6d|_d|_d|_|j|_ttd�rt�d�dSdS)Ni��rZ�
set_thresholdr)�_BgService__serviceTime�_BgService__periodTime�_BgService__threshold�_BgService__countr�gcrr�r
r
rrLs
�zBgService.__init__FcCs�|jd8_|s|jdkst��|jkrdStj�|�sdSz't��|jkr/Wtj��dSt�	�t��|j
|_|j|_Wtj��dStj��w)NrrFT)rr�timerr��_mutex�acquire�releaser�collectrr)rX�force�waitr
r
r�service)s�zBgService.service)FF)rFrtrurvrr
r�r�rLr�
__classcell__r
r
rrr�sr�r�)r�TT)rr
N)G�
__author__�__license__r�localeryrrhrrc�	threadingr�
server.mytimerr!�ctypes�CDLLr��getpreferredencodingr�
startswith�stdoutr#�allr�r&r4r9rrr7rCrIrT�objectrUrzrwr�r�r��	NameErrorr��Logger�_logr�r�r�r�r�r�r�r�r�r�r��eval�compile�__file__r�r��DOTALLr�r�r�r�r�r�r�r�r�r�r
r
r
r�<module>s�
 



		

.
�	


�
��	

�c

Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY