
    i                         d dl Z d dlZd dlmZ ddlmZ ddlmZ ddlm	Z
 dZee j                   ej                  ef   Z G d	 d
e
j                        Zy)    N)Union   )SSLTransport   )
ProxyError)_abci   c                   ~    e Zd ZU eed<   defdZd ZefdZd Z	de
dej                  d	d fd
Zd Zed	efd       Zy)SyncSocketStream_socketsockc                     || _         y Nr   )selfr   s     O/root/searxng-venv/lib/python3.12/site-packages/python_socks/sync/v2/_stream.py__init__zSyncSocketStream.__init__   s	        c                 :    | j                   j                  |       y r   )r   sendall)r   datas     r   	write_allzSyncSocketStream.write_all   s    T"r   c                 8    | j                   j                  |      S r   )r   recv)r   	max_bytess     r   readzSyncSocketStream.read   s    ||  ++r   c                     t               }t        |      |k  rH| j                  j                  |t        |      z
        }|st	        d      ||z  }t        |      |k  rH|S )NzConnection closed unexpectedly)	bytearraylenr   r   r   )r   nr   packets       r   
read_exactzSyncSocketStream.read_exact   s\    {$i!m\\&&q3t9}5F !ABBFND	 $i!m
 r   hostnamessl_contextreturnc                     t        | j                  t        j                  t        f      r#t	        | j                  ||      }t        |      S |j                  | j                  |      }t        |      S )N)r#   server_hostname)r&   )
isinstancer   ssl	SSLSocketr   wrap_socketr
   )r   r"   r#   
ssl_sockets       r   	start_tlszSyncSocketStream.start_tls$   sk    dllS]]L$AB%' (J  
++ %00 ( 1 J
  
++r   c                 8    | j                   j                          y r   )r   closer   s    r   r.   zSyncSocketStream.close3   s    r   c                     | j                   S r   r   r/   s    r   socketzSyncSocketStream.socket6   s    ||r   N)__name__
__module____qualname__
SocketType__annotations__r   r   DEFAULT_RECEIVE_SIZEr   r!   strr(   
SSLContextr,   r.   propertyr1    r   r   r
   r
      sg    Z # 2 ,,# ,CNN ,GY , 
  r   r
   )r1   r(   typingr   _ssl_transportr   _errorsr    r   abcr7   r)   r5   r
   r;   r   r   <module>rA      sH     
  ( !  6==#--=>
)s++ )r   