
    !:h*                     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mZmZ d dl	m
Z
mZmZmZmZmZ d dlZd dl	m
Z
mZmZmZmZmZmZ ddlmZ dZdZ ed	      Zd
Z ej2                  e      ZdZdZej<                  ej>                  ej@                  ejB                  ejD                  ejF                  ejH                  ejJ                  ejL                  ejN                  ejP                  ejR                  dZ*ejV                  ejX                  ejZ                  ej\                  ej^                  dZ0 G d d      Z1y)    N)IterableSequence)AnyLiteralOptionalTypeVarUnionoverload)r   Callabler   Setr   Tupler	      )errorz3.4.0)DNSResolverr   _Tzpaiodns needs a SelectorEventLoop on Windows. See more: https://github.com/aio-libs/aiodns#note-for-windows-users   )AAAAAANYCAACNAMEMXNAPTRNSPTRSOASRVTXT)INCHAOSHSNONEr   c                      e Zd Z	 	 d@deee      deej                     deddfdZ	dede
eej                  f   fdZedee   fd       Zej"                  d	eeeef      ddfd
       Zedej,                  e   dedee   ddfd       Zde
deeegdf   f   fdZedAdeded   dee   dej,                  eej>                        fd       Z edAdeded   dee   dej,                  eejB                        fd       Z edAdeded   dee   dej,                  eejD                        fd       Z edAdeded   dee   dej,                  eejF                        fd       Z edAdeded   dee   dej,                  eejH                        fd       Z edAdeded   dee   dej,                  eejJ                        fd       Z edAdeded    dee   dej,                  eejL                        fd!       Z edAdeded"   dee   dej,                  eejN                        fd#       Z edAdeded$   dee   dej,                  eejP                        fd%       Z edAdeded&   dee   dej,                  eejR                        fd'       Z edAdeded(   dee   dej,                  eejT                        fd)       Z dBdededee   dej,                  ee      fd*Z ded+e+jX                  dej,                  ejZ                     fd,Z.e+j^                  dd-d-d-fded+e+jX                  d.ee   d/ed0ed1edej,                  ej`                     fd2Z1dCd3ee2eef   e2eeeef   f   d1edej,                  ejf                     fd4Z4d5edej,                  ejZ                     fd6Z5dDd7Z6d8ed9ed:eddfd;Z7d8ed<eddfd=Z8dDd>Z9dDd?Z:y)Er   Nnameserversloopkwargsreturnc                 J   |xs t        j                         | _        | j                  J |j                  dd        |j                  dd       }|| _         | j
                  di |\  | _        | _        |r|| _        t               | _
        t               | _        d | _        y )Nsock_state_cbtimeout )asyncioget_event_loopr%   pop_timeout_make_channel_event_thread_channelr$   set	_read_fds
_write_fds_timer)selfr$   r%   r&   r*   s        I/var/www/html/turnos/venv/lib/python3.12/site-packages/aiodns/__init__.py__init__zDNSResolver.__init__>   s     4G224	yy$$$

?D)**Y-,>D,>,>,H,H)DM*D#&5$'E59    c                    t        t        d      r9t        j                         r%	 dt        j                  dd| j                  d|fS t        j                  dk(  rYt        | j                  t        j                        s5	 dd l}t        | j                  |j                        st!        t"              	 d	t        j                  d| j&                  | j                  d
|fS # t        j
                  $ rJ}t        j                  dk(  rt        j                  d|       nt        j                  d|       Y d }~d }~ww xY w# t$        $ r}t!        t"              |d }~ww xY w)Nares_threadsafetyT)event_threadr*   linuxzFailed to create a DNS resolver channel with automatic monitoring of resolver configuration changes, this usually means the system ran out of inotify watches. Falling back to socket state callback. Consider increasing the system inotify watch limit: %szFailed to create a DNS resolver channel with automatic monitoring of resolver configuration changes. Falling back to socket state callback: %swin32r   F)r)   r*   r+   )hasattrpycaresr<   Channelr/   	AresErrorsysplatform_LOGGERwarning
isinstancer%   r,   SelectorEventLoopwinloopLoopRuntimeErrorWINDOWS_SELECTOR_ERR_MSGModuleNotFoundError_sock_state_cb)r7   r&   erJ   exs        r8   r0   zDNSResolver._make_channelM   sF   7/0W5N5N5PW__ !%t}}@F  & <<7":IIw00,
E!$))W\\:&'?@@ ; goo 
--t}}
HN
 
 	
5 $$ <<7*OOQ  OO' 	0 ' E"#;<"DEs0   #C$ 3E $E7A D<<E	E"EE"c                 .    | j                   j                  S Nr2   serversr7   s    r8   r$   zDNSResolver.nameserversr   s    }}$$$r:   valuec                 &    || j                   _        y rS   rT   )r7   rW   s     r8   r$   zDNSResolver.nameserversv   s     !&r:   futresulterrornoc                     | j                         ry |C| j                  t        j                  |t        j
                  j                  |                   y | j                  |       y rS   )	cancelledset_exceptionr   DNSErrorrA   errnostrerror
set_result)rY   rZ   r[   s      r8   	_callbackzDNSResolver._callback|   sH    ==?ennWgmm6L6LW6UVWNN6"r:   zasyncio.Future[_T]c                    | j                   j                         }| j                  r9t        j                  | j                   j
                  | j                  |      }||fS t        j                  | j                  |      }||fS )z?Return a future and a callback to set the result of the future.)r%   create_futurer1   	functoolspartialcall_soon_threadsaferc   )r7   futurecbs      r8   _get_future_callbackz DNSResolver._get_future_callback   st     (,yy'>'>'@""		..B rz ""4>>6:Brzr:   hostqtyper   qclassc                      y rS   r+   r7   rl   rm   rn   s       r8   queryzDNSResolver.query       r:   r   c                      y rS   r+   rp   s       r8   rq   zDNSResolver.query   rr   r:   r   c                      y rS   r+   rp   s       r8   rq   zDNSResolver.query   rr   r:   r   c                      y rS   r+   rp   s       r8   rq   zDNSResolver.query   rr   r:   r   c                      y rS   r+   rp   s       r8   rq   zDNSResolver.query   rr   r:   r   c                      y rS   r+   rp   s       r8   rq   zDNSResolver.query   rr   r:   r   c                      y rS   r+   rp   s       r8   rq   zDNSResolver.query   rr   r:   r   c                      y rS   r+   rp   s       r8   rq   zDNSResolver.query   rr   r:   r   c                      y rS   r+   rp   s       r8   rq   zDNSResolver.query   rr   r:   r   c                      y rS   r+   rp   s       r8   rq   zDNSResolver.query   rr   r:   r   c                      y rS   r+   rp   s       r8   rq   zDNSResolver.query   rr   r:   c                 2   	 t         |   }|
	 t        |   }| j                         \  }}| j                  j                  ||||       |S # t        $ r t        dj                  |            w xY w# t        $ r t        dj                  |            w xY w)Nzinvalid query type: {}zinvalid query class: {})query_class)query_type_mapKeyError
ValueErrorformatquery_class_maprk   r2   rq   )r7   rl   rm   rn   rY   rj   s         r8   rq   zDNSResolver.query   s    	E"5)E K(0
 ++-RD%@
  	E5<<UCDD	E
  K !:!A!A&!IJJKs   	A 	A2 $A/2$Bfamilyc                 f    | j                         \  }}| j                  j                  |||       |S rS   )rk   r2   gethostbyname)r7   rl   r   rY   rj   s        r8   r   zDNSResolver.gethostbyname   s/    ++-R##D&"5
r:   r   portprototypeflagsc           	      p    | j                         \  }}| j                  j                  |||||||       |S )N)r   r   r   r   )rk   r2   getaddrinfo)	r7   rl   r   r   r   r   r   rY   rj   s	            r8   r   zDNSResolver.getaddrinfo   s<    ++-R!!$bdRW_d!e
r:   sockaddrc                 f    | j                         \  }}| j                  j                  |||       |S rS   )rk   r2   getnameinfo)r7   r   r   rY   rj   s        r8   r   zDNSResolver.getnameinfo   s/    ++-R!!(E26
r:   namec                 d    | j                         \  }}| j                  j                  ||       |S rS   )rk   r2   gethostbyaddr)r7   r   rY   rj   s       r8   r   zDNSResolver.gethostbyaddr   s-    ++-R##D"-
r:   c                 8    | j                   j                          y rS   )r2   cancelrV   s    r8   r   zDNSResolver.cancel   s    r:   fdreadablewritablec                    |s|r|rG| j                   j                  || j                  |t               | j                  j                  |       |rG| j                   j                  || j                  |t               | j                  j                  |       | j                  | j                          y y || j                  v r6| j                  j                  |       | j                   j                  |       || j                  v r6| j                  j                  |       | j                   j                  |       | j                  s<| j                  s/| j                  "| j                  j                          d | _	        y y y y rS   )r%   
add_reader_handle_eventREADr4   add
add_writerWRITEr5   r6   _start_timerdiscardremove_readerremove_writerr   )r7   r   r   r   s       r8   rO   zDNSResolver._sock_state_cb   s!   x		$$R););RF""2&		$$R););RG##B'{{"!!# # T^^#&&r*		''+T__$''+		''+>>$//dkk>U""$" ?V/>r:   eventc                     t         j                  }t         j                  }|t        k(  r|}n|t        k(  r|}| j                  j                  ||       y rS   )rA   ARES_SOCKET_BADr   r   r2   
process_fd)r7   r   r   read_fdwrite_fds        r8   r   zDNSResolver._handle_event   sD    ))**D=Ge^H  (3r:   c                     | j                   s| j                  rI| j                  j                  t        j
                  t        j
                         | j                          y d | _        y rS   )r4   r5   r2   r   rA   r   r   r6   rV   s    r8   	_timer_cbzDNSResolver._timer_cb  sB    >>T__MM$$W%<%<g>U>UVDKr:   c                     | j                   }|
|dk  s|dkD  rd}n|dk(  rd}| j                  j                  || j                        | _        y )Nr   r   g?)r/   r%   
call_laterr   r6   )r7   r*   s     r8   r   zDNSResolver._start_timer  sI    --?gkWq[G\Gii**7DNNCr:   )NN).rS   )r   )r'   N);__name__
__module____qualname__r   r   strr,   AbstractEventLoopr   r9   r   boolrA   rB   r0   propertyr$   setterr   r	   bytesstaticmethodFuturer   intrc   r   rk   r
   r   listares_query_a_resultrq   ares_query_aaaa_resultares_query_caa_resultares_query_cname_resultares_query_mx_resultares_query_naptr_resultares_query_ns_resultares_query_ptr_resultares_query_soa_resultares_query_srv_resultares_query_txt_resultsocketAddressFamilyares_host_resultr   	AF_UNSPECares_addrinfo_resultr   tupleares_nameinfo_resultr   r   r   rO   r   r   r   r+   r:   r8   r   r   =   s   >B=A:HXc]$; : 9 9:::#':#
c #
eD'//4I.J #
J %Xc] % % &%U
*;!< & & &
 #w~~b) #2 # #RV # #e,@(BPS9VZ?B[,[&\  # gcl HSM T[TbTbcgho  iD  iD  dE  UF  # gfo x} W^WeWefjkr  lJ  lJ  gK  XL  # gen hsm V]VdVdeijq  kH  kH  fI  WJ  # gg&6  X_XfXfgkls  mL  mL  hM  YN  # gdm Xc] U\UcUcdhip  jF  jF  eG  VH  # gg&6  X_XfXfgkls  mL  mL  hM  YN  # gdm Xc] U\UcUcdhip  jF  jF  eG  VH  # gen hsm V]VdVdeijq  kH  kH  fI  WJ  # gen hsm V]VdVdeijq  kH  kH  fI  WJ  # gen hsm V]VdVdeijq  kH  kH  fI  WJ  # gen hsm V]VdVdeijq  kH  kH  fI  WJ  # c 8C= '..Y]^aYbJc  # v/C/C W^WoWoHp  EKDTDTlp  @A  OP  _`  V-A-A \deh\i y|   IL   Y\   el  es  es  t{  tP  tP  eQ E%S/5c3PSAS;T*T$U ^a jqjxjx  zA  zV  zV  kW # '..9Q9Q*R # # # # #04 4C 4D 4Dr:   r   )2r,   rf   loggingrA   r   rD   collections.abcr   r   typingr   r   r   r   r	   r
   r   r   r    r   __version____all__r   rM   	getLoggerr   rF   r   r   QUERY_TYPE_AQUERY_TYPE_AAAAQUERY_TYPE_ANYQUERY_TYPE_CAAQUERY_TYPE_CNAMEQUERY_TYPE_MXQUERY_TYPE_NAPTRQUERY_TYPE_NSQUERY_TYPE_PTRQUERY_TYPE_SOAQUERY_TYPE_SRVQUERY_TYPE_TXTr   QUERY_CLASS_INQUERY_CLASS_CHAOSQUERY_CLASS_HSQUERY_CLASS_NONEQUERY_CLASS_ANYr   r   r+   r:   r8   <module>r      s,        
 . C C     
"T]@ 
 '

H
%	#00#33#22#22#44#11#44#11#22#22#22#22
 %33$66$33$55$44	RD RDr:   