
    L}bg#                        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     g/home/e360mart.nyusoft.in/public_html/e360mart_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         rq| j                                         sZ|:	 t          # t          $ r%}| j                             |           Y d }~d S d }~ww xY w| j                             |           d S d S d S r   )r   r   EOFErrorr   )r   r    es      r   connection_lostz!_DatagramProtocol.connection_lost(   s    = 	1!3!3!5!5 	1{3"N 3 3 3M//2222222223 ++C00000	1 	1 	1 	1s   + 
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_forr3   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                 f    t                                          |           || _        || _        d S r   )superr   r   protocol)r   familyr   r8   	__class__s       r   r   zDatagramSocket.__init__B   s-       " 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_futurer8   r   r3   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   )r8   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socknamerH   r   s    r   getsocknamezDatagramSocket.getsockname]   rK   r   c                    K   t           r   NotImplementedErrorr   r,   s     r   getpeercertzDatagramSocket.getpeercert`   s      !!r   )r(   r)   r*   r   r<   r   r'   rJ   rO   rT   __classcell__r:   s   @r   r5   r5   A   s        ! ! ! ! !
  
	* 	* 	*  9 9 99 9 9" " " " " " "r   r5   c                   8    e Zd Zd Zd Zd Zd Zd Zd Zd Z	dS )	StreamSocketc                 0    || _         || _        || _        d S r   )r9   readerwriter)r   afrZ   r[   s       r   r   zStreamSocket.__init__e   s    r   c                    K   | j                             |           t          | j                                         |           d {V S r   )r[   writer3   drain)r   r>   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   )r3   rZ   read)r   rC   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 rF   r[   rI   r   s    r   rJ   zStreamSocket.getpeernamet         {))*555r   c                 :   K   | j                             d          S rM   rf   r   s    r   rO   zStreamSocket.getsocknamew   rg   r   c                 :   K   | j                             d          S )Npeercertrf   rS   s     r   rT   zStreamSocket.getpeercertz   rg   r   N)
r(   r)   r*   r   r`   rc   r'   rJ   rO   rT   r
   r   r   rX   rX   d   s          
C C CF F F  6 6 66 6 66 6 6 6 6r   rX   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)r7   r   _local_port	_resolver_bootstrap_address_familyrR   )r   resolver
local_portbootstrap_addressr9   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)r9   lifetimeg       @)remote_hostremote_port
local_host)rl   r/   inet
is_addressappendrt   rn   ru   af_for_addressrs   resolve_name	addressesrm   anyio
fail_afterconnect_tcp_CoreAnyIOStream	ExceptionhttpcoreConnectError)r   hostportr,   local_addresssocket_optionsr   _
expirationr9   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   rQ   )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   rU   rV   s   @r   rp   rp      s|        		 		 		 		 		 FJ	( 	( 	( 	(D 15	& 	& 	& 	&
	' 	' 	' 	' 	' 	' 	'r   rp   c                   4     e Zd Zdddej        d fd
Z xZS )_HTTPTransportr   N)rw   rx   rv   r9   c                    |dd l }|j                                        } t                      j        |i | t          ||||          | j        _        d S )Nr   )dns.asyncresolverasyncresolverResolverr7   r   rp   _pool_network_backend)	r   rw   rx   rv   r9   argskwargsr/   r:   s	           r   r   z_HTTPTransport.__init__   sk     ((((,5577EGGd-f---*9*&7+ +DJ'''r   )r(   r)   r*   socket	AF_UNSPECr   rU   rV   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   )r9   protoremote_addrz'destination required for stream sockets   )sslr9   r   
local_addrserver_hostnamezunsupported socket ztype )r   r   
SOCK_DGRAM	_is_win32r/   r~   
any_for_afcreate_datagram_endpointr   r5   SOCK_STREAM
ValueErrorr3   r   open_connectionrX   rR   )r   r\   socktyper   sourcer?   r,   ssl_contextr   loopr   r8   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   )r3   )r   r2   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   r   sysdns._asyncbackendr/   dns._featuresdns.exceptiondns.inetplatformr   r   r   r3   _asyncbackendr5   rX   	_featureshaver   r   httpcore._backends.anyiohttpxAsyncNetworkBackend_CoreAsyncNetworkBackend	_backendsAnyIOStreamr   	dns.queryrl   rm   rn   rp   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   