
    Eqg!                     &   d Z ddlZddlZddlZddlZddlZddlZddlZej	        
                    d          s ed          d Zej        j        Z G d dej        j                  Z G d d	ej        j                  Zej	        
                    d
          rPddlZddlZddlZej        Zej        j        j        ZddlmZmZmZ  G d de          Z G d dej                   Z!nej        j"        Z! G d dej        j#                  Z#dS )z$trio async I/O library query support    Ntrioztrio not found or too oldc                 j    | t          j        |           S t          j                                        S N)r   move_on_afterdns_asyncbackendNullContexttimeouts    C/var/www/html/env/lib/python3.11/site-packages/dns/_trio_backend.py_maybe_timeoutr      s.    !'*** ,,...    c                   B     e Zd Z fdZd Zd Zd Zd Zd Zd Z	 xZ
S )DatagramSocketc                 x    t                                          |j        t          j                   || _        d S r   )super__init__familysocket
SOCK_DGRAM)selfsock	__class__s     r   r   zDatagramSocket.__init__!   s-    f&7888r   c                 2  K   t          |          5  |,| j                            |           d {V cd d d            S | j                            ||           d {V cd d d            S # 1 swxY w Y   t          j                            |          Nr
   )r   r   sendsendtor   	exceptionTimeout)r   whatdestinationr   s       r   r   zDatagramSocket.sendto%   s(     G$$ 	C 	C"![--d33333333	C 	C 	C 	C 	C 	C 	C 	C "[//kBBBBBBBB		C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C
 m## $ 
 
 	
s   "A. A..A25A2c                    K   t          |          5  | j                            |           d {V cd d d            S # 1 swxY w Y   t          j                            |          r   )r   r   recvfromr   r   r   r   sizer   s      r   r#   zDatagramSocket.recvfrom/         G$$ 	4 	4--d33333333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4m##G#444    ?AAc                 <   K   | j                                          d S r   )r   closer   s    r   r)   zDatagramSocket.close4   s       r   c                 8   K   | j                                         S r   )r   getpeernamer*   s    r   r,   zDatagramSocket.getpeername7         {&&(((r   c                 8   K   | j                                         S r   )r   getsocknamer*   s    r   r/   zDatagramSocket.getsockname:   r-   r   c                    K   t           r   NotImplementedErrorr   r   s     r   getpeercertzDatagramSocket.getpeercert=   s      !!r   )__name__
__module____qualname__r   r   r#   r)   r,   r/   r4   __classcell__r   s   @r   r   r       s            
 
 
5 5 5
  ) ) )) ) )" " " " " " "r   r   c                   D     e Zd Zd	 fd	Zd Zd Zd Zd Zd Zd Z	 xZ
S )
StreamSocketFc                 |    t                                          |t          j                   || _        || _        d S r   )r   r   r   SOCK_STREAMstreamtls)r   r   r>   r?   r   s       r   r   zStreamSocket.__init__B   s2    !3444r   c                    K   t          |          5  | j                            |           d {V cd d d            S # 1 swxY w Y   t          j                            |          r   )r   r>   send_allr   r   r   )r   r    r   s      r   sendallzStreamSocket.sendallG   r&   r'   c                    K   t          |          5  | j                            |           d {V cd d d            S # 1 swxY w Y   t          j                            |          r   )r   r>   receive_somer   r   r   r$   s      r   recvzStreamSocket.recvL   s      G$$ 	8 	811$77777777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8m##G#444r'   c                 H   K   | j                                          d {V  d S r   )r>   acloser*   s    r   r)   zStreamSocket.closeQ   s2      k  """""""""""r   c                    K   | j         r#| j        j        j                                        S | j        j                                        S r   )r?   r>   transport_streamr   r,   r*   s    r   r,   zStreamSocket.getpeernameT   A      8 	4;/6BBDDD;%11333r   c                    K   | j         r#| j        j        j                                        S | j        j                                        S r   )r?   r>   rI   r   r/   r*   s    r   r/   zStreamSocket.getsocknameZ   rJ   r   c                    K   | j         r_t          |          5  | j                                         d {V  d d d            n# 1 swxY w Y   | j                                        S t
          r   )r?   r   r>   do_handshaker4   r2   r3   s     r   r4   zStreamSocket.getpeercert`   s      8 	&(( 1 1k..0000000001 1 1 1 1 1 1 1 1 1 1 1 1 1 1;**,,,%%s    AA	A	)F)r5   r6   r7   r   rB   rE   r)   r,   r/   r4   r8   r9   s   @r   r;   r;   A   s             
5 5 5
5 5 5
# # #4 4 44 4 4& & & & & & &r   r;   doh)_compute_times_expiration_for_this_attempt
_remainingc                   8     e Zd Z fdZ	 ddZ	 ddZd Z xZS )_NetworkBackendc                     t                                                       || _        || _        || _        || _        d S r   )r   r   _local_port	_resolver_bootstrap_address_family)r   resolver
local_portbootstrap_addressr   r   s        r   r   z_NetworkBackend.__init__t   s;    GG)D%DN&7D#!DLLLr   Nc           	      H  K   g }t          |          \  }}t          j                            |          r|                    |           n| j        |                    | j                   nnt          |          }| j        }	|rt          j                            |          }	| j	        
                    ||	|           d {V }
|
                                }|D ]}	 t          j                            |          }|| j        dk    r
|| j        f}nd }||f}t          d|          }t          |          }t                                          |t           j        d|||           d {V }t%          |j                  c S # t(          $ r Y w xY wt*          j        )N)r   lifetimer   g       @)rO   r   inet
is_addressappendrW   rQ   rX   af_for_addressrV   resolve_name	addressesrU   rP   Backendmake_socketr   r=   _CoreTrioStreamr>   	ExceptionhttpcoreConnectError)r   hostportr   local_addresssocket_optionsrc   _
expirationr   answersaddressafsourcer!   attempt_expirationr   s                    r   connect_tcpz_NetworkBackend.connect_tcp{   s      I*733MAzx""4(( 0  &&&&(4  !89999$Z00  D X44]CCF $ ; ;' !< ! !       $--//	$  0099B$0D4D4I4I"/1A!B!%#*D/K)Ec:)V)V&();<<G!(!6!6F.6;" "      D +4;77777    H''s   !B$F
FFc                    K   t           r   r1   )r   pathr   rm   s       r   connect_unix_socketz#_NetworkBackend.connect_unix_socket   s       &%r   c                 >   K   t          j        |           d {V  d S r   r   sleep)r   secondss     r   r{   z_NetworkBackend.sleep   s.      *W%%%%%%%%%%%r   r   )r5   r6   r7   r   ru   rx   r{   r8   r9   s   @r   rS   rS   s   s|        	" 	" 	" 	" 	" FJ"	( "	( "	( "	(J 15	& 	& 	& 	&
	& 	& 	& 	& 	& 	& 	&r   rS   c                   4     e Zd Zdddej        d fd
Z xZS )_HTTPTransportr   N)rZ   r[   rY   r   c                    ||dd l }|j                                        } t                      j        |i | t          ||||          | j        _        d S )Nr   )dns.asyncresolverasyncresolverResolverr   r   rS   _pool_network_backend)	r   rZ   r[   rY   r   argskwargsr   r   s	           r   r   z_HTTPTransport.__init__   sq     $5$=((((,5577EGGd-f---*9*&7+ +DJ'''r   )r5   r6   r7   r   	AF_UNSPECr   r8   r9   s   @r   r~   r~      sS         "#	 	 	 	 	 	 	 	 	 	 	r   r~   c                   :    e Zd Zd Z	 	 	 	 	 	 ddZd Zd Zd ZdS )	rd   c                     dS )Nr    r*   s    r   namezBackend.name   s    vr   r   Nc	                 ^  K   t           j                            |||          }	d }
	 |r)|	                    t          ||                     d {V  |t          j        k    s|vd}t          |          5  |	                    t          ||                     d {V  d}d d d            n# 1 swxY w Y   |s t          j        	                    |          n## t          $ r |	                                  w xY w|t          j        k    rt          |	          S |t          j        k    rmt          j        |	          }
d}|rDd}	 t          j        |
||          }
n)# t          $ r |
                                 d {V   w xY wt#          ||
|          S t%          dd| z             )NFTr
   )server_hostnamezunsupported socket ztype )r   r   bind_lltupler=   r   connectr   r   r   rg   r)   r   r   SocketStream	SSLStreamrG   r;   r2   )r   rr   socktypeprotors   r!   r   ssl_contextr   sr>   	connectedr?   s                r   re   zBackend.make_socket   sR      Kr8U33	 3ffXfb112222222226---1H!	#G,, % %))H["$=$=>>>>>>>>> $I% % % % % % % % % % % % % % % ! -// ' 0     	 	 	GGIII	 v(((!!$$$+++&q))FC !^_  FF !    --//)))))))  FC000!!$6H$6$66
 
 	
s<   AC 5,B-!C -B11C 4B15%C  C;E   &Fc                 >   K   t          j        |           d {V  d S r   rz   )r   intervals     r   r{   zBackend.sleep   s.      j"""""""""""r   c                     t           S r   )r~   r*   s    r   get_transport_classzBackend.get_transport_class   s    r   c                    K   t          |          5  | d {V cd d d            S # 1 swxY w Y   t          j                            |          r   )r   r   r   r   )r   	awaitabler   s      r   wait_forzBackend.wait_for   s      G$$ 	# 	#"??????	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#m## $ 
 
 	
s   '++)r   NNNNN)r5   r6   r7   r   re   r{   r   r   r   r   r   rd   rd      sy           -
 -
 -
 -
^# # #  
 
 
 
 
r   rd   )$__doc__r   r   trio.socketdns._asyncbackendr   dns._featuresdns.exceptiondns.inet	_featureshaveImportErrorr   r^   low_level_address_tupler   r   r   r;   rh   httpcore._backends.triohttpxAsyncNetworkBackend_CoreAsyncNetworkBackend	_backends
TrioStreamrf   	dns.queryrO   rP   rQ   rS   AsyncHTTPTransportr~   NullTransportrd   r   r   r   <module>r      s   + *                   
}&!! 3
+1
2
22/ / / 8+
" " " " "S&5 " " "B%& %& %& %& %&3$1 %& %& %&P =e S5OOO""""LLL';(-8ORRRRRRRRRR2& 2& 2& 2& 2&2 2& 2& 2&h    1    * &4N>
 >
 >
 >
 >
c' >
 >
 >
 >
 >
r   