
    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k    Z
d Z G d d          Zd Z G d d	ej        j                  Z G d
 dej        j                  Zej                            d          rTddlZd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asyncio library query support    Nwin32c                  p    	 t          j                    S # t          $ r t          j                    cY S w xY wN)asyncioget_running_loopAttributeErrorget_event_loop     F/var/www/html/env/lib/python3.11/site-packages/dns/_asyncio_backend.py_get_running_loopr      sF    ('))) ( ( (%'''''(s    55c                   2    e Zd Zd Zd Zd Zd Zd Zd ZdS )_DatagramProtocolc                 "    d | _         d | _        d S r   )	transportrecvfromselfs    r   __init__z_DatagramProtocol.__init__   s    r   c                     || _         d S r   )r   )r   r   s     r   connection_madez!_DatagramProtocol.connection_made   s    "r   c                     | j         r7| j                                         s | j                             ||f           d S d S d S r   )r   done
set_result)r   dataaddrs      r   datagram_receivedz#_DatagramProtocol.datagram_received    sU    = 	3!3!3!5!5 	3M$$dD\22222	3 	3 	3 	3r   c                     | j         r5| j                                         s| j                             |           d S d S d S r   )r   r   set_exception)r   excs     r   error_receivedz _DatagramProtocol.error_received$   sQ    = 	-!3!3!5!5 	-M'',,,,,	- 	- 	- 	-r   c                 
   | j         ry| j                                         sb|B	 t          d          # t          $ r%}| j                             |           Y d }~d S d }~ww xY w| j                             |           d S d S d S )NEOF)r   r   EOFErrorr   )r   r    es      r   connection_lostz!_DatagramProtocol.connection_lost(   s    = 	1!3!3!5!5 	1{3"5//) 3 3 3M//2222222223 ++C00000	1 	1 	1 	1s   3 
A"AA"c                 8    | j                                          d S r   )r   closer   s    r   r(   z_DatagramProtocol.close3   s    r   N)	__name__
__module____qualname__r   r   r   r!   r&   r(   r
   r   r   r   r      sn          # # #3 3 3- - -	1 	1 	1    r   r   c                    K   |O	 t          j        | |           d {V S # t           j        $ r! t          j                            |          w xY w|  d {V S )N)timeout)r   wait_forTimeoutErrordns	exceptionTimeout)	awaitabler-   s     r   _maybe_wait_forr4   7   s      	9 ))W=========# 	9 	9 	9-'''888	9 s	   ! 0A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                 |    t                                          |t          j                   || _        || _        d S r   )superr   socket
SOCK_DGRAMr   protocol)r   familyr   r;   	__class__s       r   r   zDatagramSocket.__init__B   s2    !2333" r   c                 Z   K   | j                             ||           t          |          S r   )r   sendtolen)r   whatdestinationr-   s       r   r?   zDatagramSocket.sendtoG   s*      dK0004yyr   c                 
  K   t                                                      }	 | j        j        J || j        _        t	          ||           d {V  |                                d | j        _        S # d | j        _        w xY wr   )r   create_futurer;   r   r4   result)r   sizer-   r   s       r   r   zDatagramSocket.recvfromL   s       ""0022	*=)111%)DM"!$000000000;;==%)DM""TDM"))))s   AA4 4Bc                 <   K   | j                                          d S r   )r;   r(   r   s    r   r(   zDatagramSocket.closeW   s       r   c                 :   K   | j                             d          S Npeernamer   get_extra_infor   s    r   getpeernamezDatagramSocket.getpeernameZ         ~,,Z888r   c                 :   K   | j                             d          S NsocknamerK   r   s    r   getsocknamezDatagramSocket.getsockname]   rN   r   c                    K   t           r   NotImplementedErrorr   r-   s     r   getpeercertzDatagramSocket.getpeercert`   s      !!r   )r)   r*   r+   r   r?   r   r(   rM   rR   rW   __classcell__r=   s   @r   r6   r6   A   s        ! ! ! ! !
  
	* 	* 	*  9 9 99 9 9" " " " " " "r   r6   c                   B     e Zd Z fdZd Zd Zd Zd Zd Zd Z	 xZ
S )StreamSocketc                 |    t                                          |t          j                   || _        || _        d S r   )r8   r   r9   SOCK_STREAMreaderwriter)r   afr^   r_   r=   s       r   r   zStreamSocket.__init__e   s2    V/000r   c                    K   | j                             |           t          | j                                         |           d {V S r   )r_   writer4   drain)r   rA   r-   s      r   sendallzStreamSocket.sendallj   sL      $$T[%6%6%8%8'BBBBBBBBBr   c                 b   K   t          | j                            |          |           d {V S r   )r4   r^   read)r   rF   r-   s      r   recvzStreamSocket.recvn   s8      $T[%5%5d%;%;WEEEEEEEEEr   c                 <   K   | j                                          d S r   )r_   r(   r   s    r   r(   zStreamSocket.closeq   s       r   c                 :   K   | j                             d          S rI   r_   rL   r   s    r   rM   zStreamSocket.getpeernamet         {))*555r   c                 :   K   | j                             d          S rP   rj   r   s    r   rR   zStreamSocket.getsocknamew   rk   r   c                 :   K   | j                             d          S )Npeercertrj   rV   s     r   rW   zStreamSocket.getpeercertz   rk   r   )r)   r*   r+   r   rd   rg   r(   rM   rR   rW   rX   rY   s   @r   r[   r[   d   s            
C C CF F F  6 6 66 6 66 6 6 6 6 6 6r   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k    rt          d          d S )Nr   z9the asyncio transport for HTTPX cannot set the local port)r8   r   _local_port	_resolver_bootstrap_address_familyrU   )r   resolver
local_portbootstrap_addressr<   r=   s        r   r   z_NetworkBackend.__init__   s\    GG)D%DN&7D#!DLQ)O   r   Nc                   K   g }t          |          \  }}t          j                            |          r|                    |           n| j        |                    | j                   nnt          |          }| j        }	|rt          j                            |          }	| j	        
                    ||	|           d {V }
|
                                }|D ]}	 t          d|          }t          |          }t          j        |          5  t          j        |||           d {V }d d d            n# 1 swxY w Y   t!          |          c S # t"          $ r Y w xY wt$          j        )N)r<   lifetimeg       @)remote_hostremote_port
local_host)rp   r0   inet
is_addressappendrx   rr   ry   af_for_addressrw   resolve_name	addressesrq   anyio
fail_afterconnect_tcp_CoreAnyIOStream	ExceptionhttpcoreConnectError)r   hostportr-   local_addresssocket_optionsr   _
expirationr<   answersaddressattempt_expirationstreams                 r   r   z_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 $ ; ;' !< ! !       $--//	$  )Ec:)V)V&();<<G)'22  ','8(/(,'4( ( ( " " " " " "               ,F33333    D''s6   !3ED>2E>E	EE	E
E'&E'c                    K   t           r   rT   )r   pathr-   r   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.      +g&&&&&&&&&&&r   r   )r)   r*   r+   r   r   r   r   rX   rY   s   @r   rt   rt      s|        		 		 		 		 		 FJ	( 	( 	( 	(D 15	& 	& 	& 	&
	' 	' 	' 	' 	' 	' 	'r   rt   c                   4     e Zd Zdddej        d fd
Z xZS )_HTTPTransportr   N)r{   r|   rz   r<   c                    ||dd l }|j                                        } t                      j        |i | t          ||||          | j        _        d S )Nr   )dns.asyncresolverasyncresolverResolverr8   r   rt   _pool_network_backend)	r   r{   r|   rz   r<   argskwargsr0   r=   s	           r   r   z_HTTPTransport.__init__   sq     $5$=((((,5577EGGd-f---*9*&7+ +DJ'''r   )r)   r*   r+   r9   	AF_UNSPECr   rX   rY   s   @r   r   r      sS         "#	 	 	 	 	 	 	 	 	 	 	r   r   c                   @    e Zd Zd Z	 	 	 	 	 	 d	dZd Zd Zd Zd ZdS )
Backendc                     dS )Nr   r
   r   s    r   namezBackend.name   s    yr   r   Nc	                   K   t                      }	|t          j        k    rct          r#|!t          j                            |          df}|	                    t          ||||           d {V \  }
}t          ||
|          S |t          j
        k    r`|t          d          t          t          j        |d         |d         |||||          |           d {V \  }}t          |||          S t!          dd| z             )Nr   )r<   protoremote_addrz'destination required for stream sockets   )sslr<   r   
local_addrserver_hostnamezunsupported socket ztype )r   r9   r:   	_is_win32r0   r   
any_for_afcreate_datagram_endpointr   r6   r]   
ValueErrorr4   r   open_connectionr[   rU   )r   r`   socktyper   sourcerB   r-   ssl_contextr   loopr   r;   rws                 r   make_socketzBackend.make_socket   sn      !""v((( 6V^ (--b1115(,(E(E!' )F ) ) # # # # # #Ix ""i:::+++" !!JKKK*'NN#%$3          FQ  Aq)))!!$6H$6$66
 
 	
r   c                 >   K   t          j        |           d {V  d S r   )r   r   )r   intervals     r   r   zBackend.sleep	  s.      mH%%%%%%%%%%%r   c                     dS )NFr
   r   s    r   datagram_connection_requiredz$Backend.datagram_connection_required  s    ur   c                     t           S r   )r   r   s    r   get_transport_classzBackend.get_transport_class  s    r   c                 2   K   t          ||           d {V S r   )r4   )r   r3   r-   s      r   r.   zBackend.wait_for  s(      $Y888888888r   )r   NNNNN)	r)   r*   r+   r   r   r   r   r   r.   r
   r   r   r   r      s           -
 -
 -
 -
^& & &    9 9 9 9 9r   r   )%__doc__r   r9   sysdns._asyncbackendr0   dns._featuresdns.exceptiondns.inetplatformr   r   r   r4   _asyncbackendr6   r[   	_featureshaver   r   httpcore._backends.anyiohttpxAsyncNetworkBackend_CoreAsyncNetworkBackend	_backendsAnyIOStreamr   	dns.queryrp   rq   rr   rt   AsyncHTTPTransportr   NullTransportr   r
   r   r   <module>r      s%   $ #   



             LG#	( ( (       >   "  "  "  "  "S&5  "  "  "F6 6 6 6 63$1 6 6 64 =e U5LLLOOO####LLL';)/;RRRRRRRRRR3' 3' 3' 3' 3'2 3' 3' 3'j    1    * &4N=9 =9 =9 =9 =9c' =9 =9 =9 =9 =9r   