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/tests/__pycache__/sockettestcase.cpython-312.pyc
�

�ogf�����dZdZdZddlZddlZddlZddlZddlZddlZddl	m
Z
ddlmZdd	l
mZmZmZmZmZdd
lmZddlmZddl	m
Z
d�ZGd
�de�ZGd�de
�ZGd�de
�Zy)zSteven Hiscocksz"Copyright (c) 2013 Steven Hiscocks�GPL�N�)�LogCaptureTestCase�)�protocol)�asyncore�RequestHandler�loop�AsyncServer�AsyncServerException)�Utils)�CSocketc��td��)N�test unpickle error��	Exception)�argss �?/usr/lib/python3/dist-packages/fail2ban/tests/sockettestcase.py�TestMsgErrorr,s���&�'�'�c� �eZdZedffd�Zd�Zy)�TestMsg�c��||_y�N��unpickle)�selfrs  r�__init__zTestMsg.__init__/s	���$�-rc��|jSrr�rs r�
__reduce__zTestMsg.__reduce__1s��	
���rN)�__name__�
__module__�__qualname__rrr"rrrrr.s��*�B�/��rrc�l��eZdZ�fd�Zd�Zed��Zd
d�Zd�Zd�Z	d�Z
d�Zd	�Zd
�Z
d�Zd�Z�xZS)�Socketc���tj|�tt|��t	|�|_t
jdd�\}}tj|�tj|�||_d|_y)zCall before every test case.z
fail2ban.sockz
f2b-socketN)
r�setUp�superr'r�server�tempfile�mkstemp�os�close�remove�	sock_name�serverThread)r�sock_fdr1�	__class__s   �rr)zSocket.setUp7sh������4� �������D�!�$�+��'�'���F��'�9��(�(�7���)�)�I���$�.��$�rc��|jr*|jj�|j�t	j
|�y)zCall after every test case.N)r2r+�stop�_stopServerThreadr�tearDownr!s rr8zSocket.tearDownBs5��	����;�;�����������d�#rc��|S)z<Test transmitter proceed method which just returns first argr)�messages r�proceedzSocket.proceedIs	��
�.rc�\�tj|jj|j|f��x|_}d|_|j�|jtj|jjtjjd���|S)N)�targetrT�
)�	threading�Threadr+�startr1r2�daemon�
assertTruer
�wait_for�isActive�unittest�F2B�maxWaitTime)r�forcer2s   r�_createServerThreadzSocket._createServerThreadNs��%.�%5�%5�
�+�+�
�
�4�>�>�5�"9�&;�;�$��l��,�������/�/�%�.�.����!5�!5�x�|�|�7O�7O�PR�7S�T�U�	�rc���|j�tj�fd�tjjd��d|_y)Nc�h���j�xs�jtj�Sr)�is_alive�joinr
�DEFAULT_SLEEP_TIME)r2s�r�<lambda>z*Socket._stopServerThread.<locals>.<lambda>Zs/���\�2�2�4�4�2�����0�0�1�rr>)r2r
rDrFrGrH�rr2s @rr7zSocket._stopServerThreadWs:����"�"�,��.�.�2�3;�<�<�3K�3K�B�3O�Q��$�rc��|j�}|jj�|j�|j	|j��|jj
�|j	|jj��|j	tjj|j��yr)rJr+r/r7�assertFalserMr6rEr.�path�existsr1rQs  r�testStopPerCloseUnexpectedz!Socket.testStopPerCloseUnexpected^s����)�)�+�,��+�+�����������<�(�(�*�+��+�+�������4�;�;�'�'�)�*����2�7�7�>�>�$�.�.�1�2rc�Z�	t|j�S#t$r
}Yd}~yd}~wwxYwr)rr1r)r�es  r�
_serverSocketzSocket._serverSocketks)���
�$�.�.�
!�!��	��
���s��	*�*c��|j�}tj|jd�}gd�}|j	|j|�|�|j	|jt
�gg�d�|jddd��|j	|j|�|�|j�|j�|jj�tj|jd�}|j	|j|�dg�|jj�|j�|j|j��|j|jj��|jt j"j%|j&��y)	Nr��A�testr:�ERROR: test unpickle errorz!PROTO-error: load message failed:rT��all�SHUTDOWN)rJr
rDrY�assertEqual�sendr�assertLoggedr/r+�stop_communicationr6r7rSrMrEr.rTrUr1)rr2�client�testMessages    r�
testSocketzSocket.testSocketqs]���)�)�+�,��>�>�$�,�,�a�0�&�(�+����6�;�;�{�+�[�9����6�;�;����}�-�/K�L����7�9N�TX��Y����6�;�;�{�+�[�9�	�,�,�.��,�,�.��+�+� � �"��>�>�$�,�,�a�0�&����6�;�;�{�+�j�\�:��+�+�����������<�(�(�*�+����4�;�;�'�'�)�*����2�7�7�>�>�$�.�.�1�2rc�L���|j�}tj|jd��dddtj
jgg�tj}	d�t_|jtd��fd��|t_y#|t_wxYw)Nrr\r]r:c�"�|j�Sr)r/r!s rrPz0Socket.testSocketConnectBroken.<locals>.<lambda>�s��$�*�*�,�rzreset by peer|Broken pipec�d���j�tjjd���S)Nr>)�timeout)rcrFrGrH)rfrgs��rrPz0Socket.testSocketConnectBroken.<locals>.<lambda>�s#���F�K�K��X�\�\�-E�-E�b�-I�K�J�r)rJr
rDrYr�CSPROTO�ENDr	�found_terminator�assertRaisesRegexr)rr2�org_handlerrfrgs   @@r�testSocketConnectBrokenzSocket.testSocketConnectBroken�s�����)�)�+�,��>�>�$�,�,�a�0�&��f�i�(�*:�*:�*>�*>�)?�@�+��/�/�+�1�%>�>�"����)�%A�J�L�&1�>�"��[�>�"�s�#'B�
B#c��|j�}tj|jd�}gd�}|j	|j|�|�tj}	d�t_|j	|j|�d�|t_|jddd��|jj�|j�|j|j��y#|t_wxYw)	Nrr[c��t�Sr)rr!s rrPz.Socket.testStopByCommunicate.<locals>.<lambda>�s��,�.�rr^zUnexpected communication errorrTr_)rJr
rDrYrbrcr	rordr+r6r7rSrM)rr2rfrgrqs     r�testStopByCommunicatezSocket.testStopByCommunicate�s����)�)�+�,��>�>�$�,�,�a�0�&�(�+����6�;�;�{�+�[�9��/�/�+�1�%@�>�"����F�K�K��,�.J�K�%0�>�"����4�6K�QU��V��+�+�����������<�(�(�*�+��&1�>�"�s�'-C=�=
D
c�\���tj�ddi���fd�}	|t_|j�}|jt	j
�fd�tjjd����t_|jddd�	�y#�t_wxYw)
N�cntrrc�N���dxxdz
cc<�ddkrtd���|�S)Nrwr�2ztest errors in poll)�RuntimeError)r�err�org_polls ��r�_produce_errorz-Socket.testLoopErrors.<locals>._produce_error�s3����v�;�!��;�	�&�k�B��
�,�
-�-�
�D�/�rc����ddkDS)Nrwryr)r{s�rrPz'Socket.testLoopErrors.<locals>.<lambda>�s���#�f�+��*:�rr>z1Server connection was closed: test errors in poll�0Too many errors - stop logging connection errorsTr_)
r�pollrJrCr
rDrFrGrHrd)rr}r2r{r|s   @@r�testLoopErrorszSocket.testLoopErrors�s����
�]�]�(�	���#���!�8�=��*�*�,�<��?�?�5�>�>�":�H�L�L�<T�<T�UW�<X�Y�Z��8�=����G�5�4��A���8�=�s�A B�
B+c�.�t|jd�j�|jt|j
j|jd�|jd�}|j
j�|j�|j|j��|j|j
j��|jtjj|j��y)N�wFT)�openr1r/�assertRaisesrr+rArJr6r7rSrMrEr.rTrUrQs  r�testSocketForcezSocket.testSocketForce�s����t�~�~�s��!�!�#��������*�*�D�N�N�E�C��)�)�$�/�,��+�+�����������<�(�(�*�+����4�;�;�'�'�)�*����2�7�7�>�>�$�.�.�1�2r)F)r#r$r%r)r8�staticmethodr;rJr7rVrYrhrrrur�r��
__classcell__)r4s@rr'r'5sP���	�$�������3��3�B
1�,�0A�,3rr'c��eZdZd�Zd�Zy)�
ClientMiscc���ddi��fd�}�fd�}t||��|jdddd	�
�|jd�|jdd
dd	�
�y)Nrwrc����ddkS)Nrw�(r)�phases�r�_activez,ClientMisc.testErrorsInLoop.<locals>._active�s���
��-�"�
�rc�@���dxxdz
cc<td�dz��)Nrwrz	test *%d*r)rr�s �r�_pollz*ClientMisc.testErrorsInLoop.<locals>._poll�s%�����=�A��=�	�;��v��.�	/�/r)�use_pollztest *1*z	test *10*z	test *20*Tr_rz	test *21*z	test *22*z	test *23*)r
rd�assertNotLogged)rr�r�r�s   @r�testErrorsInLoopzClientMisc.testErrorsInLoop�s_����1�+�%��0��w������J��[�d��C����F�G����{�K��$��Grc���tj}ttjd�t_	tj�tj�|t_y#|t_wxYw)Nr�)�sys�stdoutr�r.�devnullr�printFormatted�	printWiki)r�saved_stdouts  r�testPrintFormattedAndWikiz$ClientMisc.testPrintFormattedAndWiki�sK�����,��B�J�J��$�#�*�����������3�:���3�:�s�(A)�)
A6N)r#r$r%r�r�rrrr�r��s
��H�	rr�)�
__author__�
__copyright__�__license__r.r�r,r?�timerF�utilsr�r�server.asyncserverrr	r
rr�server.utilsr
�client.csocketrr�objectrr'r�rrr�<module>r�sk��.�
�4�
���	�
�����%��b�b� �$�%�(��f��h3�
�h3�V�#�r