
    i|                     b    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y)    N)Optional   )SyncSocketStreamSyncResolver   )SyncConnector)socks4)is_ip_addressc                   X    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y
)Socks4SyncConnectoruser_idrdnsresolverc                 6    |d}|| _         || _        || _        y )NF)_user_id_rdns	_resolver)selfr   r   r   s       W/root/searxng-venv/lib/python3.12/site-packages/python_socks/_connectors/socks4_sync.py__init__zSocks4SyncConnector.__init__   s#     <D
!    streamhostportreturnc                    t        j                         }t        |      s:| j                  s.| j                  j                  |t        j                        \  }}t        j                  ||| j                        }|j                  |      }|j                  |       |j                  t         j                  j                        }|j                  |      }|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Socks4SyncConnector.connect   s       "T"4::nn,,~~ - GAt
 ''TdmmTyy!  !4!4!9!9:%)\\$%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#      1   $"- "r   