HOME


Mini Shell 1.0
Redirecting to https://devs.lapieza.net/iniciar-sesion Redirecting to https://devs.lapieza.net/iniciar-sesion.
DIR: /proc/1953949/root/usr/lib/python3/dist-packages/fail2ban/__pycache__/
Upload File :
Current File : //proc/1953949/root/usr/lib/python3/dist-packages/fail2ban/__pycache__/helpers.cpython-311.pyc
�

�BdoG����dZdZddlZddlZddlZddlZddlZddlZddlZddl	m
Z
ddlmZddl
Z
	ddlZejd��Zn	#dZYnxYwej��at$�d��rVejr8ejj�,ejj�d��s
ejjaned	�d
D����rdaejdkrd
�Zet$��[ejdkrt$dfd�Zd�Zn6t$dfd�Zej�����dkrd�ZneZd�Zd�Zd�Z Gd�de!��Z"Gd�dej#��Z$de_%d8d�Z&	e'Z'n
#e($re)Z'YnwxYwej*j+Z,d�Z-e-ej*_+ej.j/Z0d�Z1e1ej._/d�Z2d�Z3d9d"�Z4d#�Z5d$�Z6ejd%kre7e8d&e9d'����nd(�Z:d)�Z;ej8d*ej<��Z=ej8d+ej<��Z>ej8d,ej<��Z?d-�Z@d.�ZAd/ZBej8d0��ZC		d:d3�ZDerd4�ZEnd5�ZEGd6�d7e!��ZFdS);z<Cyril Jaquier, Arturo 'Buanzo' Busleiman, Yaroslav Halchenko�GPL�N)�Lock�)�MyTimezlibcap.so.2�ANSI_c#�BK�|]}tj|��dvV��dS))N�N)�os�getenv��.0�vs  �2/usr/lib/python3/dist-packages/fail2ban/helpers.py�	<genexpr>r0s/����
Z�
Z�!�2�9�Q�<�<�:�%�
Z�
Z�
Z�
Z�
Z�
Z�)�LANGUAGE�LC_ALL�LC_CTYPE�LANGzUTF-8��c��tj�����}|dkr�|t���kr�t}t	|d��sD	ddlm}|dd��}n0#t$r#tj	t��t}YnwxYwt	|d��r|�
|��dSdSdSdS)N�ASCII�setdefaultencodingr)�load_dynamic�_sys�sys)r�getdefaultencoding�upper�
PREFER_ENC�hasattr�impr�ImportError�	importlib�reloadr)�encoding�oder�__ldms    r�__resetDefaultEncodingr)8s����� � �&�&�(�(�#��G�^�^��z�/�/�1�1�1�1�

�4�
�$�,�
-�
-���*�*�*�*�*�*��E�&�%� � �T�T��������c�����T�T�T������d�(�)�)�&����H�%�%�%�%�%��^�1�1�&�&s�!A4�4*B!� B!�strictc���	t|t��r|�||��S|S#ttf$r |dkr�|�|d��cYSwxYw�Nr*�replace)�
isinstance�bytes�decode�UnicodeDecodeError�UnicodeEncodeError��x�enc�errorss   r�
uni_decoder7Ys{��#���E���!��8�8�C�� � � �
�8��
�0�	1�#�#�#�����	�
�(�(�3�	�
"�
"�"�"�"�#�����*/�/�.A �A c��t|t��st|��S|�td��S�Nr-)r.r/�strr0r �r4s r�
uni_stringr=bs3��	�A�u�	�	��

�a�&�&�=�	
���*�i�	(�	(�(rc���	t|t��r|�||��S|S#ttf$r |dkr�|�|d��cYSwxYwr,)r.r;�encoder1r2r3s   rr7r7gs{��#���C���!��8�8�C�� � � �
�8��
�0�	1�#�#�#�����	�
�(�(�3�	�
"�
"�"�"�"�#���r8c��t|t��st|��S|�td��Sr:)r.r;r?r r<s rr=r=qs3��
�Q��
�
���q�6�6�M�
�(�(�:�y�
)�
)�)rc�v�t|t��st|��n|���dvS)N)�1�on�true�yes)r.r;�bool�lower)�vals r�_as_boolrIys4��#�C��-�-�	1��S�	�	�	�
�y�y�{�{�0�0�1rc�j�tj��dd�\}}|jt|��fS)z+ Consistently format exception information N�)r�exc_info�__name__r=)�cla�excs  r�formatExceptionInforP~s-���L�N�N�2�A�2����c�	��z�#���'�'rc�,�tj�|��}|�d��r
|dd�}|t	ddg��vrBtj�tj�|����dz|z}|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)�srSs  r�	mbasenamer\�s���
	���������M�M�%����	
�c�r�c��$��C���$�%�%�%�%�	��	�	�"�'�/�/�!�,�,�	-�	-��	3�d�	:�$��rc� �eZdZdZdd�Zd�ZdS)�	TraceBackz7Customized traceback to be included in debug messages
	Fc�"�d|_||_dS)z�Initialize TrackBack metric

		Parameters
		----------
		compress : bool
		  if True then prefix common with previous invocation gets
		  replaced with ...
		r	N)�_TraceBack__prev�_TraceBack__compress)�self�compresss  rrTzTraceBack.__init__�s���$�+��$�/�/�/rc�L�tjd���dd�}d�|D��}d�|D��}|dg}|dd�D]O}|d|ddkr |ddxxd	|dzz
cc<�:|�|���Pd
�d�|D����}|jre|}t
j�|j|f��}tj
dd
|��}|d
krd|t|��d�z}||_|S)N�d)�limit���c��g|]P}t|d��tj�|d��t	|d��g��QS)rr)r\r
rVrZr;�r
r4s  r�
<listcomp>z&TraceBack.__call__.<locals>.<listcomp>�sX��
E�
E�
E�;<�I�a��d�O�O�R�W�_�_�Q�q�T�*�*�C��!��I�I�6�
E�
E�
Erc�x�g|]7}|ddv�|d�d���'|d|dg��8S)r)�unittestzlogging.__init__rz	/unittestrK)rX)r
�es  rrjz&TraceBack.__call__.<locals>.<listcomp>�sU��
'�
'�
'�q�
�q�T�5�
5�
5�
�A�$�-�-��
$�
$�6���t�Q�q�T�l�
5�
5�
5rrr���z,%s�>c�N�g|]"}t|d���d|d����#S)r�:r)r\ris  rrjz&TraceBack.__call__.<locals>.<listcomp>�sD��%�%�%��(��!��o�o�o�o�	
�1����%�%�%rz>[^>]*$r	z...)�	traceback�
extract_stack�append�joinrar
rV�commonprefixr`�re�sub�len)	rb�ftb�entries�entries_out�entry�sftb�	prev_next�
common_prefix�common_prefix2s	         r�__call__zTraceBack.__call__�s~����c�*�*�*�3�B�3�/�#�
E�
E�@C�
E�
E�
E�'�
'�
'�G�
'�
'�
'�'�
����+��q�r�r�{���e��A�h�+�b�/�!�$�$�$���O�A����%�%��(�*�*��������u�����	���%�%�#�%�%�%�
&�
&�$�	�_���9��7�'�'���d�(;�<�<�=��F�9�b�-�8�8�>������4��N�+�+�,�,�-�-�D��4�;�	
�+rN)F)rM�
__module__�__qualname__�__doc__rTr��rrr^r^�sA��������
�
�
�
�����rr^c��eZdZdZd�Zd�ZdS)�FormatterWithTraceBackz}Custom formatter which expands %(tb) and %(tbc) with tracebacks

	TODO: might need locking in case of compressed tracebacks
	c�p�tjj|g|�Rd|i|��d|v}t|���|_dS)N�fmtz%(tbc)s)rc)�logging�	FormatterrTr^�_tb)rbr��args�kwargsrcs     rrTzFormatterWithTraceBack.__init__�sK��	���T�<�T�<�<�<�s�<�V�<�<�<�
�#�
�(�
��
)�
)�
)�$�(�(�(rc��|���x|_|_tj�||��S�N)r��tbc�tbr�r��format)rb�records  rr�zFormatterWithTraceBack.format�s1���8�8�:�:�%�&�*�v�y�	�	�	!�	!�$��	/�	/�/rN)rMr�r�r�rTr�r�rrr�r��s<��������*�*�*�
0�0�0�0�0rr�Fc�<�|r4t|j��r |�|jd��|rd�|_d�tj_tjr=	tj	���n#YnxYwtj
d��dSdS)Nrc��dSr�r�r�rr�<lambda>z!__stopOnIOError.<locals>.<lambda>�s��4�rc��dSr�r��rbs rr�z!__stopOnIOError.<locals>.<lambda>�s��D�r)ry�handlers�
removeHandler�closer��
StreamHandler�flush�
exitOnIOErrorr�stderr�exit)�logSys�logHndlrs  r�__stopOnIOErrorr��s���
�+�s�6�?�#�#�+����v��q�)�*�*�*�� ��<�(�.�0�0���������:����������4�����(�1�+�+�+�+�+��s� A?�?Bc�J�	t||||fi|��dS#ttf$r }|jdkrt	|���d}~wt
$rU}	d|t
|��ffdd�|D��fffD]}	t||g|�R��#Y�xYwn#Yn	xYwYd}~dSYd}~dSd}~wwxYw)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: %rc�,�g|]}t|����Sr�)r=)r
�as  rrjz__safeLog.<locals>.<listcomp>�s��1�1�1�q�Z��]�]�1�1�1r)�	__origLog�BrokenPipeError�IOError�errnor��	Exceptionr=)rb�level�msgr�r�rms      r�	__safeLogr��s0����D�%��d�-�-�f�-�-�-�-�-��	�'�"�����W��]�]��4�������������
��!�Z��_�_�!5�6��1�1�D�1�1�1�3�4��
�
�t�
��t�U�"�T�"�"�"�"�"��
�	�T����
����4����
�
�
�
�
�
��4�4�4�4�4��������sJ��B"�A�
B"�$B
�3B�B
�B�B
�	B�
B�B�B"c��	t|��dS#ttf$r!}|jdkrt	d|���d}~wwxYw)zQSafe flush inject stopping endless logging on closed streams (redirected pipe).
	r�N)�__origLogFlushr�r�r�r�)rbrms  r�__safeLogFlushr�
s]�����������	�'�"�����W��]�]��4�������������s��A�A�Ac�n�d|vrd|�d��dz}tj|��S)zBGet logging.Logger instance with Fail2Ban logger name convention
	rUzfail2ban.%srn)�
rpartitionr��	getLogger��names rr�r�s9���4�K�K�	�����-�-�b�1�	1�$���$���rc�
�	t|t��s|���rt|��}n'tt|�����}n #t$rtd|z���wxYw|S)NzInvalid log level %r)r.�int�isdigit�getattrr�r�AttributeError�
ValueError)�value�lls  r�str2LogLevelr�s���3���s���(�u�}�}���(��E�
�
�2�2��������'�'�2����3�3�3��)�E�1�2�2�2�3����
�s�A A#�#B� %(message)sTc��|dkr$|dkrd|z}|dkrd|z}nd|z}|rd|z}nd|z}|rd	|z}|stjd
d�|��}|S)z(Custom log format for the verbose runs
	rrz6 | %(module)15.15s-%(levelno)-2d: %(funcName)-20.20s |rKzB +%(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+)?sc��dS)Nr[r�)�ms rr�z$getVerbosityFormat.<locals>.<lambda>8s��S�r)rwrx)�	verbosityr��addtime�paddings    r�getVerbosityFormatr�&s�����M�M���]�]�	A�C�	G�3���]�]�	M�PS�	S�3�3�	(�3�	.�3�
�"�
�c�
!�C��3�c�9�#���	�#�	�3��?�
��)�=�=�#�>�>�#��rc�v�td���dd���tj|||��S)z>Except hook used to log unhandled exceptions to Fail2Ban log
	�fail2banz Unhandled exception in Fail2Ban:T)rL)r��criticalr�__excepthook__)�exctyper�rrs   r�
excepthookr�<sC���:�����$�t� �5�5�5���7�E�9�5�5�5rc
��|sgStttd�tjd|��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
	c�6�g|]}|�����Sr�)�striprs  rrjzsplitwords.<locals>.<listcomp>Ks ��E�E�E��1�7�7�9�9�E�E�Erz[ ,
]+)�list�filterrFrw�split)r[s r�
splitwordsr�CsD��	
��	�)��V�D�E�E�b�h�y�!�.D�.D�E�E�E�
F�
F�G�G�Gr)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}
	�execc�`�|}|r)|���}|�|��|S)zHelper to merge dicts.
		��copy�update�r4�y�rs   r�_merge_dictsr�\s2���!����v�v�x�x�1��8�8�A�;�;�;�	
�(rc�\�|���}|r|�|��|S)zCHelper to merge dicts to guarantee a copy result (r is never x).
		r�r�s   r�_merge_copy_dictsr�ds-���f�f�h�h�!����8�8�A�;�;�;�	
�(rz^([^\[]+)(?:\[(.*)\])?\s*$zf\s*([\w\-_\.]+)=(?:"([^"]*)"|\'([^\']*)\'|([^,\]]*))(?:,|\]\s*\[|$|(?P<wrngA>.+))|,?\s*$|(?P<wrngB>.+)zs(?:[^\[\s]+(?:\s*\[\s*(?:[\w\-_\.]+=(?:"[^"]*"|\'[^\']*\'|[^,\]]*)\s*(?:,|\]\s*\[)?\s*)*\])?\s*|\S+)(?=\n\s*|\s+|$)c	�B�t�|��}|std���|���\}}t	��}|�rIt
�|��D�]-}|�d��rVtd|�d��|�d��|�d��dd�fz���|�d��rBtd|�d��|�d��dd�fz���|�d��}|s��d	�|�d
dd��D��d}|�	��||�	��<��/||fS)
Nzunexpected option syntax�wrngAz+unexpected syntax at %d after option %r: %srr��wrngBz'expected option, wrong syntax at %d: %sc��g|]}|�|��Sr�r�)r
rHs  rrjz"extractOptions.<locals>.<listcomp>�s ��=�=�=��C�O�C�O�O�OrrKr�)
�
OPTION_CRE�matchr��groups�dict�OPTION_EXTRACT_CRE�finditer�group�startr�)�optionr��option_name�optstr�option_opts�optmatch�optr�s        r�extractOptionsr�|s���	�	�	�&�	!�	!��
�/��-�.�.�.��|�|�~�~���f��v�v��
�,�$�-�-�f�5�5�,�,�h��n�n�W���Q�
�B�
�^�^�G���h�n�n�Q�/�/�����1H�1H��2��1N�FP�P�Q�Q�Q��n�n�W���>�
�>�
�^�^�G���h�n�n�W�5�5�a��d�;�B=�=�>�>�>�	����	�	�3�

��x�=�=��>�>�!�A�a�(�(�=�=�=�=>�@�5�#�k�k�m�m�;�s�y�y�{�{����[� � rc�6�t�|��Sr�)�OPTION_SPLIT_CRE�findall)r�s r�splitWithOptionsr��s��� � ��(�(�(rr�z<([^ <>]+)>r	r�c��tj}|}t|��}t��}t|d��}i}	d}	|���D�].}
|
|vs|
|vr�|r#t|�|
����r�1t||
��x}}||��}
|�|
i��}|
�rX|
�	d��}||vr|||
�
����}
�;||
ks|�|d��tkrtd|
�d|�d|�d|�����d	}|r|�|d
z|z��}|�$|�|��}|�
|�||��}|�|||
�
����}
��t|t��st|��}|�d|z|��}|�|d��dz||<|||
�����}
|
��X||krK||��r|||
<d}	t#|��t#|��kr|���}|||
<d
|vr|�|
����0|	sn��K|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.
	�
getRawItemTFrzRproperties contain self referencing definitions and cannot be resolved, fail tag: z	, found: z in z	, value: N�?z<%s>r�<)�TAG_CRE�searchrYr!�keys�callabler�r=�getr��end�MAX_TAG_REPLACE_COUNTr�r.r;r-r��idr��add)�inptags�conditional�ignore�addrepl�
tre_search�tags�done�	noRecRepl�	repCounts�repFlag�tagr��orgvalr��rplc�rtag�repls                 r�substituteRecursiveTagsr�s���,�n����

�f�+�+������
�T�<�
(�
(��
��A	��'�
�Y�Y�[�[�;&�;&�c�	�V�m�m�s�d�{�{�H��<�H�T�_�_�S�1�1�2�2�<�H��t�C�y�)�)�)�5�6��z�%���1�
�-�-��R�
 �
 �4�	
�$%��7�7�1�:�:�D��v�~�~�	��E�1�5�5�7�7�	#�	#�Q�
��s�{�{�d�h�h�t�Q�'�'�*?�?�?��:��s�s�D�D�D�$�$�$���� � � ��D��/��H�H�T�C�Z�+�-�.�.�T��|��H�H�T�N�N�T����,�
�W�T�]�]�d��|�
��E�1�5�5�7�7�	#�	#�Q�
��d�C� � �9��D�)9�)9�$��M�M�&�4�-��.�.�E����$��"�"�Q�&�D��J��
�5�!�'�'�)�)�$�$�A�I
�$%�N
��o�o��z�%�����Y�s�^��W�	�$�x�x�2�g�;�;����L�L�N�N�T��D��I�	��������
�
�
��	�	��CA	�D	
�rc��	tjdkr|���}nt|��}t�d|��dS#YdSxYw)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�s r�prctl_set_th_namersY��
�	��$����;�;�=�=�D�D���;�;�D�
�=�=��T���������4�4���s�AA�Ac��dSr�r�r�s rrrs���$rc�H��eZdZdZe��ZdZ�fd�Zd�Zdd�Z	�xZ
S)�	BgServicez{Background servicing

	Prevents memory leak on some platforms/python versions, 
	using forced GC in periodical intervals.
	Nc�z��|js-tt|���|��|_|jSr�)�	_instance�superr"�__new__)�cls�	__class__s �rr&zBgService.__new__s7���	��'�	�)�S���!�!�#�&�&��=�	��rc��d|_d|_d|_|j|_t	t
d��rtjd��dSdS)Ni��re�
set_thresholdr)�_BgService__serviceTime�_BgService__periodTime�_BgService__threshold�_BgService__countr!�gcr+r�s rrTzBgService.__init__$sW��"�$���$���$���!�$�,��R��!�!����A�������rFc�<�|xjdzc_|s)|jdkstj��|jkrdStj�|��sdS	tj��|jkr!	tj���dStj	��tj��|j
z|_|j|_	tj���dS#tj���wxYw)NrrFT)r/r�timer,r"�_mutex�acquire�releaser0�collectr-r.)rb�force�waits   r�servicezBgService.service/s����,�,�!��,�,�	��D�L�1�$�$���
�
��8J�(J�(J�
�%�	�	�	!�	!�$�	'�	'��
�%�	��k�m�m�d�(�(�(��
����������:�<�<�<���
�
��(9�9�4���"�4�<�
�����������9����������s�C;�?C;�; D)FF)rMr�r�r�rr3r$r&rTr9�
__classcell__)r(s@rr"r"sw����������$�&�&��
�����������������rr")NN)r�TT)r	r�N)G�
__author__�__license__r0�localer�r
rwrrr�	threadingr�
server.mytimerr$�ctypes�CDLLr�getpreferredencodingr �
startswith�stdoutr&�allrr)r7r=rrr;rIrPr\�objectr^r�r�r�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�rrrrr"r�rr�<module>rNs���(L�
���	�	�	�	�
�
�
�
�����	�	�	�	�	�	�	�	�
�
�
�
�����������!�!�!�!�!�!�����������6�;�}�%�%������������)�V�
(�
*�
*�
�
����!�!���J��3�:�&�2�3�:�;N�;Y�;Y�Za�;b�;b�2��z�"�*�*�	�c�
Z�
Z�/Y�
Z�
Z�
Z�[�[���*�
��d���&�&�&� ��
�#�#�#����t���!�(�#�#�#�#�)�)�)�)�
"�(�#�#�#�#��C����"�"�$�$��/�/�*�*�*�*�
�*�1�1�1�
(�(�(�

�

�

�+�+�+�+�+��+�+�+�\0�0�0�0�0�W�.�0�0�0���������"����������������
�N��	����< �����&�,�����-���� � � ��������,6�6�6�H�H�H���u�����g�g�����������������R�Z�5�r�y�
A�
A�
�
 �R�Z�j�ln�lu�w�w���2�:�w�y{�zC�D�D��!�!�!�*)�)�)����"�*�^�
$�
$��13��`
�`
�`
�`
�F���������,�,�,�,�,��,�,�,�,�,s�A�A
�4E7�7F�F