
    i                     j    d dl Z d dlmZ ddlmZmZ ddlmZ ddlm	Z	 ddl
mZ  G d	 d
e          ZdS )    N)Optional   )AsyncSocketStreamAsyncResolver   )AsyncConnector)socks4)is_ip_addressc                   \    e Zd Zdee         dee         defdZdedede	de
j        fd	Zd
S )Socks4AsyncConnectoruser_idrdnsresolverc                 8    |d}|| _         || _        || _        d S )NF)_user_id_rdns	_resolver)selfr   r   r   s       f/usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages/python_socks/_connectors/socks4_async.py__init__zSocks4AsyncConnector.__init__   s'     <D
!    streamhostportreturnc                   K   t          j                    }t          |          s6| j        s/| j                            |t          j                   d {V \  }}t          j        ||| j	                  }|
                    |          }|                    |           d {V  |                    t           j        j                   d {V }|                    |          }|S )N)family)r   r   r   )r	   
Connectionr
   r   r   resolvesocketAF_INETConnectRequestr   send	write_all
read_exactConnectReplySIZEreceive)	r   r   r   r   conn_requestdatareplys	            r   connectzSocks4AsyncConnector.connect   s       ""T"" 	4: 	 N22~ 3        GAt
 'TdmTTTyy!!t$$$$$$$$$&&v':'?@@@@@@@@%)\\$%7%7r   N)__name__
__module____qualname__r   strboolr   r   r   intr	   r&   r.    r   r   r   r      s        "#" tn"  	" " " "!  	
 
	     r   r   )r    typingr   _abcr   r   abcr   
_protocolsr	   _helpersr
   r   r5   r   r   <module>r;      s           3 3 3 3 3 3 3 3             $ $ $ $ $ $" " " " "> " " " " "r   