← Back
Editing: test_socks.cpython-38.pyc
U W[JE � @ s� d Z ddlZddlZddlmZmZ ddlmZ ddlm Z ddl mZ ddlm Z ddlmZ G d d � d e j�ZG dd� d�ZG d d� dej�ZG dd� dej�ZG dd� 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, e Zd ZdZdZdd� Zdd� Zdd� ZdS ) �StringTCPTransportFNc C s | j S )N)�peer��self� r �9/usr/lib/python3/dist-packages/twisted/test/test_socks.py�getPeer s zStringTCPTransport.getPeerc C s t �ddd�S )N�TCPz2.3.4.5�* )r �IPv4Addressr r r r �getHost s zStringTCPTransport.getHostc C s d| _ d S )NT)�stringTCPTransport_closingr r r r �loseConnection s z!StringTCPTransport.loseConnection)�__name__� __module__�__qualname__r r r r r r r r r r s r c @ s e Zd ZdZdd� Zdd� ZdS )�FakeResolverReactorzP Bare-bones reactor with deterministic behavior for the resolve method. c C s || _ 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 r r r r �__init__( s zFakeResolverReactor.__init__c C sD zt �| j| �W S tk r> t �td|�d� �� Y S X dS )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 �resolve1 s ��zFakeResolverReactor.resolveN)r r r �__doc__r r r r r r r $ s r c @ s$ e Zd ZdZdZdd� Zdd� ZdS )� SOCKSv4DriverNc G s: ||� }t � |_t�d||�|j_|�� || _t�|�S )Nr ) r � transportr r r �connectionMade�driver_outgoingr r )r Zhost�port�klass�args�protor r r �connectClassE s zSOCKSv4Driver.connectClassc G s( ||� }|| _ |dkrd}t�d|f�S )Nr �� �6.7.8.9)� driver_listenr r )r r% r&