HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //lib/python3/dist-packages/twisted/test/__pycache__/test_socks.cpython-38.pyc
U


W[JE�@s�dZddlZddlZddlmZmZddlmZddlm	Z	ddl
mZddlm
Z
ddlmZGd	d
�d
e
j�ZGdd�d�ZGd
d�dej�ZGdd�dej�ZGdd�dej�ZdS)z_
Tests for L{twisted.protocol.socks}, an implementation of the SOCKSv4 and
SOCKSv4a protocols.
�N)�defer�address)�DNSLookupError)�	iterbytes)�socks)�
proto_helpers)�unittestc@s,eZdZdZdZdd�Zdd�Zdd�ZdS)	�StringTCPTransportFNcCs|jS)N)�peer��self�r
�9/usr/lib/python3/dist-packages/twisted/test/test_socks.py�getPeerszStringTCPTransport.getPeercCst�ddd�S)N�TCPz2.3.4.5�*)r�IPv4Addressrr
r
r�getHostszStringTCPTransport.getHostcCs
d|_dS)NT)�stringTCPTransport_closingrr
r
r�loseConnectionsz!StringTCPTransport.loseConnection)�__name__�
__module__�__qualname__rr
rrrr
r
r
rr	s
r	c@s eZdZdZdd�Zdd�ZdS)�FakeResolverReactorzP
    Bare-bones reactor with deterministic behavior for the resolve method.
    cCs
||_dS)z�
        @type names: L{dict} containing L{str} keys and L{str} values.
        @param names: A hostname to IP address mapping. The IP addresses are
            stringified dotted quads.
        N)�names)rrr
r
r�__init__(szFakeResolverReactor.__init__c
CsDzt�|j|�WStk
r>t�td|�d���YSXdS)zQ
        Resolve a hostname by looking it up in the C{names} dictionary.
        z"FakeResolverReactor couldn't find zutf-8N)r�succeedr�KeyErrorZfailr�decode)rZhostnamer
r
r�resolve1s��zFakeResolverReactor.resolveN)rrr�__doc__rrr
r
r
rr$s	rc@s$eZdZdZdZdd�Zdd�ZdS)�
SOCKSv4DriverNcGs:||�}t�|_t�d||�|j_|��||_t�|�S)Nr)	r	�	transportrrr
�connectionMade�driver_outgoingrr)rZhost�port�klass�args�protor
r
r�connectClassEszSOCKSv4Driver.connectClasscGs(||�}||_|dkrd}t�d|f�S)Nr���6.7.8.9)�
driver_listenrr)rr%r&r'�factoryr
r
r�listenClassOs
zSOCKSv4Driver.listenClass)rrrr$r,r)r.r
r
r
rr!>s
r!c@sPeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�ZdS)�ConnectTestszV
    Tests for SOCKS and SOCKSv4a connect requests using the L{SOCKSv4} protocol.
    cCs0t�|_t�|j_|j��tddi�|j_dS�Ns	localhost�	127.0.0.1�r!�sockr	r"r#rZreactorrr
r
r�setUp]s

zConnectTests.setUpcCs$|jj}|dk	r |�|jjd�dS)Nz-Outgoing SOCKS connections need to be closed.)r3r$�
assertTruer"r)rZoutgoingr
r
r�tearDownds

�zConnectTests.tearDownc	Cs�|j�t�dddd�t�d�dd�|jj��}|jj��|�	|t�ddd	d�t�d��|�
|jjj�|�|jj
�|j�d
�|�	|jj
j��d
�|jj
�d�|�	|jj��d�|j�d�dS)
N�!BBH���"�1.2.3.4�fooBAR�r�Z�hello, world�hi there�fake reason)r3�dataReceived�struct�pack�socket�	inet_atonr"�value�clear�assertEqual�assertFalser�assertIsNotNoner$�connectionLost)r�sentr
r
r�test_simpleks2�������zConnectTests.test_simplec	Cs�t�dddd�t�d�dd}t|�D]}|j�|�q*|jj��}|jj�	�|�
|t�ddd	d�t�d
��|�|jjj�|�
|jj�|j�d�|�
|jjj��d�|jj�d�|�
|jj��d�|j�d
�dS)�u
        If the destination IP address has zeros for the first three octets and
        non-zero for the fourth octet, the client is attempting a v4a
        connection.  A hostname is specified after the user ID string and the
        server connects to the address that hostname resolves to.

        @see: U{http://en.wikipedia.org/wiki/SOCKS#SOCKS_4a_protocol}
        r7r8r9r:�0.0.0.1�fooBAZ�
localhostrr>r1r?r@rAN)rCrDrErFrr3rBr"rGrHrIrJrrKr$rL�r�
clientRequest�byterMr
r
r� test_socks4aSuccessfulResolution�s4����	��z-ConnectTests.test_socks4aSuccessfulResolutionc	Cs�t�dddd�t�d�dd}t|�D]}|j�|�q*|jj��}|�	|t�ddd	d�t�d
��|�
|jjj�|�|jj
�dS)��
        Failed hostname resolution on a SOCKSv4a packet results in a 91 error
        response and the connection getting closed.
        r7r8r9r:rPrQ�failinghostr�[�0.0.0.0N�rCrDrErFrr3rBr"rGrIr5r�assertIsNoner$rSr
r
r�test_socks4aFailedResolution�s"����	�z)ConnectTests.test_socks4aFailedResolutionc	Cs�dd�|j_|j�t�dddd�t�d�dd	�|�|jj�	�t�dd
dd
�t�d��|�
|jjj�|�|jj
�dS)
NcSsdS�Nrr
��codeZserverr%�userr
r
r�<lambda>��z0ConnectTests.test_accessDenied.<locals>.<lambda>r7r8r9��10.2.3.4r<r=rrYrZ)r3�	authorizerBrCrDrErFrIr"rGr5rr\r$rr
r
r�test_accessDenied�s"������zConnectTests.test_accessDeniedcCsx|j�t�dddd�t�d�dd�|jj��|j�d�|�|jj	j�
�d�|jj	j��|jj	�d	�dS�
Nr7r8r9r:r;r<r=r?rA)
r3rBrCrDrErFr"rHrIr$rGrrLrr
r
r�test_eofRemote�s �����zConnectTests.test_eofRemotecCsh|j�t�dddd�t�d�dd�|jj��|j�d�|�|jj	j�
�d�|j�d	�dSrh)r3rBrCrDrErFr"rHrIr$rGrLrr
r
r�
test_eofLocal�s�����zConnectTests.test_eofLocalN)rrrr r4r6rNrVr]rgrirjr
r
r
rr/Ys/r/c@sPeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�ZdS)�	BindTestszS
    Tests for SOCKS and SOCKSv4a bind requests using the L{SOCKSv4} protocol.
    cCs0t�|_t�|j_|j��tddi�|j_dSr0r2rr
r
rr4s

zBindTests.setUpc	Cs@|j�t�dddd�t�d�dd�|jj��}|jj��|�	|t�ddd	d
�t�d��|�
|jjj�|�|jj
�|jj
�d�}|�|�t�|_|��|jj��}|jj��|�	|t�ddd	d�t�d
��|�
|jjj�|j�d�|�	|j��d�|�d�|�	|jj��d�|j�d�dS)Nr7r8�r:r;r<r=rr>r*r+�r;��rZr?r@rA)r3rBrCrDrErFr"rGrHrIrJrrKr,�
buildProtocolr	r#rL�rrM�incomingr
r
rrNsJ������
���
zBindTests.test_simplec	CsTt�dddd�t�d�dd}t|�D]}|j�|�q*|jj��}|jj�	�|�
|t�ddd	d
�t�d��|�|jjj�|�
|jj�|jj�d�}|�
|�t�|_|��|jj��}|jj�	�|�
|t�ddd	d�t�d
��|�|jjjd�|j�d�|�
|j��d�|�d�|�
|jj��d�|j�d�dS)rOr7r8rlr:rPrQrRrr>r*r+)r1rnrZNr@rA)rCrDrErFrr3rBr"rGrHrIrJrrKr,ror	r#ZassertIsNotrL)rrTrUrMrqr
r
r�test_socks4a<sL����	�
���
zBindTests.test_socks4ac	Cs�t�dddd�t�d�dd}t|�D]}|j�|�q*|jj��}|�	|t�ddd	d�t�d
��|�
|jjj�|�|jj
�dS)rWr7r8rlr:rPrQrXrrYrZNr[rSr
r
rr]xs"����	�z&BindTests.test_socks4aFailedResolutionc	Cs�dd�|j_|j�t�dddd�t�d�dd	�|�|jj�	�t�dd
dd
�t�d��|�
|jjj�|�|jj
�dS)
NcSsdSr^r
r_r
r
rrb�rcz-BindTests.test_accessDenied.<locals>.<lambda>r7r8rlrdrer<r=rrYrZ)r3rfrBrCrDrErFrIr"rGr5rr\r,rr
r
rrg�s"������zBindTests.test_accessDeniedc	Cs�|j�t�dddd�t�d�dd�|jj��}|jj��|jj	�
d�}|�|�t�|_|�
�|jj��}|jj��|�|t�dd	d
d	�t�d��|�|jjj�|j�d�|�|j��d�|j��|�d
�dS�Nr7r8rlr:r;r<r=rmrr>rZr?rA)r3rBrCrDrErFr"rGrHr,rorKr	r#rIrJrrrLrpr
r
rri�s:����
���
zBindTests.test_eofRemotec	Cs�|j�t�dddd�t�d�dd�|jj��}|jj��|jj	�
d�}|�|�t�|_|�
�|jj��}|jj��|�|t�dd	d
d	�t�d��|�|jjj�|j�d�|�|j��d�|j�d
�dSrs)r3rBrCrDrErFr"rGrHr,rorKr	r#rIrJrrLrpr
r
rrj�s8����
���zBindTests.test_eofLocalc	Cs�|j�t�dddd�t�d�dd�|jj��}|jj��|jj	�
d�}|�|�|jj��}|jj��|�|t�dd	d
d	�t�d��|�
|jjj�dS)Nr7r8rlr:r;r<r=)z1.6.6.6i�rrYrZ)r3rBrCrDrErFr"rGrHr,ror\rIr5rrpr
r
r�test_badSource�s*����
��zBindTests.test_badSourceN)rrrr r4rNrrr]rgrirjrtr
r
r
rrks
(<! rk)r rCrEZtwisted.internetrrZtwisted.internet.errorrZtwisted.python.compatrZtwisted.protocolsrZtwisted.testrZ
twisted.trialrZStringTransportr	rZSOCKSv4r!ZTestCaser/rkr
r
r
r�<module>s+