AnonSec Shell
Server IP : 209.38.156.173  /  Your IP : 216.73.216.122   [ Reverse IP ]
Web Server : Apache/2.4.52 (Ubuntu)
System : Linux lakekumayuhotel 5.15.0-136-generic #147-Ubuntu SMP Sat Mar 15 15:53:30 UTC 2025 x86_64
User : root ( 0)
PHP Version : 8.1.2-1ubuntu2.22
Disable Function : NONE
Domains : 2 Domains
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /lib/python3/dist-packages/twisted/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     [ BACKUP SHELL ]     [ JUMPING ]     [ MASS DEFACE ]     [ SCAN ROOT ]     [ SYMLINK ]     

Current File : /lib/python3/dist-packages/twisted/test/__pycache__/test_tcp_internals.cpython-310.pyc
o

�b�2�@s dZddlZddlZddlZzddlZWneydZYnwddlmZddlm	Z	m
Z
ddlmZm
Z
ddlmZmZddlmZmZmZmZmZmZmZmZmZmZmZddlmZdd	lm Z dd
l!m"Z"ee	j#�$e
�d�Gdd
�d
e"��Z%ee	j#�$e
�d�Gdd�de"��Z&dS)z
Whitebox tests for TCP APIs.
�N)�skipIf)�
interfaces�reactor)�
gatherResults�
maybeDeferred)�Protocol�
ServerFactory)�_ACCEPT_ERRORS�EAGAIN�ECONNABORTED�EINPROGRESS�EMFILE�ENFILE�ENOBUFS�ENOMEM�EPERM�EWOULDBLOCK�Port)�log)�platform)�TestCasez?This test only applies to reactors that implement IReactorFDsetc@sFeZdZdZdZdd�Zdd�Zdd�Zee	�
�d	kd
�dd��Zd
S)�PlatformAssumptionsTestsz4
    Test assumptions about platform behaviors.
    i cCs`g|_tdur.ddlm}t|��d}t�tj�|_t�tj||jdf�|d|_	dSdS)Nr)�_listOpenFDs���d)
�openSockets�resource�twisted.internet.processr�len�	getrlimit�
RLIMIT_NOFILE�originalFileLimit�	setrlimit�socketLimit)�selfr�newLimit�r'�A/usr/lib/python3/dist-packages/twisted/test/test_tcp_internals.py�setUp4s��zPlatformAssumptionsTests.setUpcCs\|jr
|j����|jstdur,t�tj�d}t|jd|�}t�tj||f�dSdS)Nrr)	r�pop�closerr r!�minr"r#)r%�currentHardLimit�newSoftLimitr'r'r(�tearDownFs��z!PlatformAssumptionsTests.tearDowncCst��}|j�|�|S)z|
        Create and return a new socket object, also tracking it so it can be
        closed in the test tear down.
        )�socketr�append)r%�sr'r'r(r0RszPlatformAssumptionsTests.socket�win32zhWindows requires an unacceptably large amount of resources to provoke this behavior in the naive manner.cCs�|��}|�d�|��d}|�d�|��}|�d�t|j�D]%}z|��Wq"tyG}z|jdt	t
fvrBWYd}~n�d}~ww|�d�|�|�
d|f�dtf�|�tj|j�}|�|jdt	t
f�dS)	z�
        Test that the platform accept(2) call fails with either L{EMFILE} or
        L{ENOBUFS} when there are too many file descriptors open.
        )�	127.0.0.1rr�FrNz7Could provoke neither EMFILE nor ENOBUFS from platform.r4)r0�bind�getsockname�listen�setblocking�ranger$�OSError�argsr
r�fail�assertIn�
connect_exr�assertRaises�error�accept)r%�port�serverPortNumber�client�i�e�excr'r'r(�test_acceptOutOfFiles[s*


��
�z.PlatformAssumptionsTests.test_acceptOutOfFilesN)�__name__�
__module__�__qualname__�__doc__r$r)r/r0rr�getTyperIr'r'r'r(r)s	
�rc@s�eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
ee�
�dkd�dd��Zee�
�dkd�dd��Zeej�d�dkd�dd��Zee�
�dkd�dd��Zdd �Zd!S)"�SelectReactorTestsz7
    Tests for select-specific failure conditions.
    cCsg|_g|_t�|jj�dS�N)�ports�messagesr�addObserverr1�r%r'r'r(r)�szSelectReactorTests.setUpcCs"t�|jj�tdd�|jD��S)NcSsg|]}t|j��qSr')r�
stopListening)�.0�pr'r'r(�
<listcomp>�sz/SelectReactorTests.tearDown.<locals>.<listcomp>)r�removeObserverrRr1rrQrTr'r'r(r/�szSelectReactorTests.tearDowncCs&t|||d�}|��|j�|�|S)z
        Create, start, and return a new L{Port}, also tracking it so it can
        be stopped in the test tear down.
        ��	interface)r�startListeningrQr1)r%�
portNumber�factoryr[rWr'r'r(rC�szSelectReactorTests.portcs�G�fdd�d�}t�}|jd|dd�}|�|d|��|��d�tj����fdd	�|jD�}|�t|�dd
|jf�dS)a�
        Test behavior in the face of an exception from C{accept(2)}.

        On any exception which indicates the platform is unable or unwilling
        to allocate further resources to us, the existing port should remain
        listening, a message should be logged, and the exception should not
        propagate outward from doRead.

        @param socketErrorNumber: The errno to simulate from accept.
        c�eZdZdZ�fdd�ZdS)z9SelectReactorTests._acceptFailureTest.<locals>.FakeSocketzI
            Pretend to be a socket in an overloaded system.
            cst�t�����rP)r;�os�strerrorrT��socketErrorNumberr'r(rB�sz@SelectReactorTests._acceptFailureTest.<locals>.FakeSocket.acceptN�rJrKrLrMrBr'rbr'r(�
FakeSocket�srerr4rZr0z/Could not accept new connection ({acceptError})cs(g|]}|�d��ko|�d��k�qS)�
log_format�acceptError)�get)rV�msg)�expectedErrorCode�expectedFormatr'r(rX�s
��z9SelectReactorTests._acceptFailureTest.<locals>.<listcomp>z+Log event for failed accept not found in %rN)	rrC�patch�doRead�errno�	errorcoderR�
assertGreaterr)r%rcrer^rC�matchingMessagesr')rjrkrcr(�_acceptFailureTest�s
�
�z%SelectReactorTests._acceptFailureTestcC�
|�t�S)a*
        C{accept(2)} can fail with C{EMFILE} when there are too many open file
        descriptors in the process.  Test that this doesn't negatively impact
        any other existing connections.

        C{EMFILE} mainly occurs on Linux when the open file rlimit is
        encountered.
        )rrr
rTr'r'r(�test_tooManyFilesFromAccept��
	z.SelectReactorTests.test_tooManyFilesFromAcceptcCrs)z�
        Similar to L{test_tooManyFilesFromAccept}, but test the case where
        C{accept(2)} fails with C{ENOBUFS}.

        This mainly occurs on Windows and FreeBSD, but may be possible on
        Linux and other platforms as well.
        )rrrrTr'r'r(�test_noBufferSpaceFromAccept��
z/SelectReactorTests.test_noBufferSpaceFromAcceptcCrs)z�
        Similar to L{test_tooManyFilesFromAccept}, but test the case where
        C{accept(2)} fails with C{ECONNABORTED}.

        It is not clear whether this is actually possible for TCP
        connections on modern versions of Linux.
        )rrrrTr'r'r(� test_connectionAbortedFromAccept�rwz3SelectReactorTests.test_connectionAbortedFromAcceptr3z(Windows accept(2) cannot generate ENFILEcCrs)z�
        Similar to L{test_tooManyFilesFromAccept}, but test the case where
        C{accept(2)} fails with C{ENFILE}.

        This can occur on Linux when the system has exhausted (!) its supply
        of inodes.
        )rrrrTr'r'r(�test_noFilesFromAccept�ruz)SelectReactorTests.test_noFilesFromAcceptz(Windows accept(2) cannot generate ENOMEMcCrs)a�
        Similar to L{test_tooManyFilesFromAccept}, but test the case where
        C{accept(2)} fails with C{ENOMEM}.

        On Linux at least, this can sensibly occur, even in a Python program
        (which eats memory like no ones business), when memory has become
        fragmented or low memory has been filled (d_alloc calls
        kmem_cache_alloc calls kmalloc - kmalloc only allocates out of low
        memory).
        )rrrrTr'r'r(�test_noMemoryFromAccept�s
z*SelectReactorTests.test_noMemoryFromAccept�INFRASTRUCTURE�AZUREPIPELINESz(Hangs on Azure Pipelines due to firewallcs�t�}t|_|jd|dd��|��j�g��fdd�}|�|��fdd�}��|��d�_���|�	�jd���|�����|�
�jd����|�
�jd�d	S)
z�
        L{tcp.Port.doRead} increases the number of consecutive
        C{accept} calls it performs if all of the previous C{accept}
        calls succeed; otherwise, it reduces the number to the amount
        of successful calls.
        rr4rZcs�D]}|��qdSrP)r+�rE)�clientsr'r(�closeAlls
�z7SelectReactorTests.test_acceptScaling.<locals>.closeAllcs(t�tjtj�}|�d���jf�|S)Nr4)r0�AF_INET�SOCK_STREAM�connect�getHostrCr})rCr'r(r�sz6SelectReactorTests.test_acceptScaling.<locals>.connectrN)rr�protocolrC�
addCleanuprUr1�
numberAcceptsrmrp�assertEqual)r%r^rr�r')r~rCr(�test_acceptScalings"
z%SelectReactorTests.test_acceptScalingz'Windows accept(2) cannot generate EPERMcs�d�dg�G���fdd�d�}t��D]}��tj|�j�q���j|�j�dg�t�}�jd|dd�}d|_��	|d|��|�
���|jd�d	S)
z�
        C{accept(2)} returning C{EPERM} is treated as a transient
        failure and the call retried no more than the maximum number
        of consecutive C{accept(2)} calls.
        �{rcs eZdZdZ���fdd�ZdS)zLSelectReactorTests.test_permissionFailure.<locals>.FakeSocketWithAcceptLimit��
            Pretend to be a socket in an overloaded system whose
            C{accept} method can only be called
            C{maximumNumberOfAccepts} times.
            cs6�dd7<�d�kr��d�ttt�t���)Nrrz(Maximum number of accept calls exceeded.)r=r;rr`ra��oself��acceptCalls�maximumNumberOfAcceptsr%r'r(rBCs
zSSelectReactorTests.test_permissionFailure.<locals>.FakeSocketWithAcceptLimit.acceptNrdr'r�r'r(�FakeSocketWithAcceptLimit<sr�r4rZr0rN)r:r@r0rArB�failureExceptionrrCr�rlrm�assertEquals)r%r��_r^rCr'r�r(�test_permissionFailure2sz)SelectReactorTests.test_permissionFailurecs�tt�}|�tttg�tdd�|D��d�G�fdd�d�}t�}|jd|dd�}|�	|d	|��|�
�|�tj
�}|�dt|��|�|djjd��d
S)z}
        A C{socket.error} raised by C{accept(2)} whose C{errno} is
        unknown to the recovery logic is logged.
        css�|]
}t|t�r|VqdSrP)�
isinstance�int)rVrAr'r'r(�	<genexpr>gs�zBSelectReactorTests.test_unknownSocketErrorRaise.<locals>.<genexpr>rcr_)zYSelectReactorTests.test_unknownSocketErrorRaise.<locals>.FakeSocketWithUnknownAcceptErrorr�cs
t�d��)Nzunknown socket error message)r;r���unknownAcceptErrorr'r(rBqs
z`SelectReactorTests.test_unknownSocketErrorRaise.<locals>.FakeSocketWithUnknownAcceptError.acceptNrdr'r�r'r(� FakeSocketWithUnknownAcceptErrorjsr�rr4rZr0N)�listr	�extendr
rr�maxrrCrlrm�flushLoggedErrorsr0rAr�r�valuer<)r%�knownErrorsr�r^rC�failuresr'r�r(�test_unknownSocketErrorRaise^s�
z/SelectReactorTests.test_unknownSocketErrorRaiseN)rJrKrLrMr)r/rCrrrtrvrxrrrNryrzr`�environrhr�r�r�r'r'r'r(rO�s*
)





�
)
+rO)'rMrnr`r0r�ImportError�unittestr�twisted.internetrr�twisted.internet.deferrr�twisted.internet.protocolrr�twisted.internet.tcpr	r
rrr
rrrrrr�twisted.pythonr�twisted.python.runtimer�twisted.trial.unittestr�
IReactorFDSet�
providedByrrOr'r'r'r(�<module>s6�4
�[�

Anon7 - 2022
AnonSec Team