
    ,h'                         d dl mZmZ d dlmZ d dlZd dlZd dlZd dl	Zd dl
Z G d d      Z G d de      Z G d d	e      Z G d
 de      Z G d de      Z G d de      Zy)    )OptionalUnion)urlparseNc                   |   e Zd Zd Zd ZdefdZdefdZdefdZ	de
fdZ	 	 ddej                  j                  d	ed
ee   de
dedededej                  j"                  fdZ	 	 ddej                  j                  d	ed
ee   de
dedej&                  j(                  dededej                  j"                  fdZy)
Nameserverc                      y N selfs    P/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/dns/nameserver.py__init__zNameserver.__init__   s        c                     t         r	   NotImplementedErrorr   s    r   __str__zNameserver.__str__       !!r   returnc                     t         r	   r   r   s    r   kindzNameserver.kind   r   r   c                     t         r	   r   r   s    r   is_always_max_sizezNameserver.is_always_max_size   r   r   c                     t         r	   r   r   s    r   answer_nameserverzNameserver.answer_nameserver   r   r   c                     t         r	   r   r   s    r   answer_portzNameserver.answer_port   r   r   requesttimeoutsourcesource_portmax_sizeone_rr_per_rrsetignore_trailingc                     t         r	   r   r   r   r   r    r!   r"   r#   r$   s           r   queryzNameserver.query   s
     "!r   backendc	                    K   t         wr	   r   	r   r   r   r    r!   r"   r(   r#   r$   s	            r   async_queryzNameserver.async_query*   s      "!s   	NFF)__name__
__module____qualname__r   r   strr   boolr   r   intr   dnsmessageQueryMessagefloatr   Messager'   asyncbackendBackendr+   r
   r   r   r   r      s8   ""c ""D ""3 ""S " "' %
"))
" 
" 	
"
 
" 
" 
" 
" 
		
"( "' %"))" " 	"
 " " !!))" " " 
		"r   r   c                   ^     e Zd Zdedef fdZdefdZdefdZd Z	defdZ
defd	Z xZS )
AddressAndPortNameserveraddressportc                 >    t         |           || _        || _        y r	   )superr   r<   r=   r   r<   r=   	__class__s      r   r   z!AddressAndPortNameserver.__init__9   s    	r   r   c                     t         r	   r   r   s    r   r   zAddressAndPortNameserver.kind>   r   r   c                      y)NFr
   r   s    r   r   z+AddressAndPortNameserver.is_always_max_sizeA       r   c                 ^    | j                         }| d| j                   d| j                   S )N:@)r   r<   r=   )r   ns_kinds     r   r   z AddressAndPortNameserver.__str__D   s,    ))+!DLL>499+66r   c                     | j                   S r	   )r<   r   s    r   r   z*AddressAndPortNameserver.answer_nameserverH   s    ||r   c                     | j                   S r	   )r=   r   s    r   r   z$AddressAndPortNameserver.answer_portK   s    yyr   )r-   r.   r/   r0   r2   r   r   r1   r   r   r   r   __classcell__rA   s   @r   r;   r;   8   sK     3 
"c "D 73 S r   r;   c                   d    e Zd Zddedef fdZd Z	 	 ddej                  j                  de
dee   ded	ed
ededej                  j                  fdZ	 	 ddej                  j                  de
dee   ded	edej                  j                   d
ededej                  j                  fdZ xZS )Do53Nameserverr<   r=   c                 &    t         |   ||       y r	   )r?   r   r@   s      r   r   zDo53Nameserver.__init__P   s    $'r   c                      y)NDo53r
   r   s    r   r   zDo53Nameserver.kindS   s    r   r   r   r    r!   r"   r#   r$   r   c                     |r=t         j                  j                  || j                  || j                  ||||      }|S t         j                  j                  || j                  || j                  ||d||dd      }|S )N)r   r=   r    r!   r#   r$   T)	r   r=   r    r!   raise_on_truncationr#   r$   ignore_errorsignore_unexpected)r3   r'   tcpr<   r=   udp)	r   r   r   r    r!   r"   r#   r$   responses	            r   r'   zDo53Nameserver.queryV   s     yy}}YY'!1 / % 	H0  yy}}YY'$(!1 /""& % H r   r(   c	                 4  K   |rFt         j                  j                  || j                  || j                  |||||	       d {   }	|	S t         j                  j                  || j                  || j                  ||d|||dd       d {   }	|	S 7 O7 w)N)r   r=   r    r!   r(   r#   r$   T)
r   r=   r    r!   rS   r(   r#   r$   rT   rU   )r3   
asyncqueryrV   r<   r=   rW   )
r   r   r   r    r!   r"   r(   r#   r$   rX   s
             r   r+   zDo53Nameserver.async_query{   s       ^^//YY'!1 / 0 
 
H4  !^^//YY'$(!1 /""& 0  H 5
s%   ABBABBBB)5   r,   )r-   r.   r/   r0   r2   r   r   r3   r4   r5   r6   r   r1   r7   r'   r8   r9   r+   rK   rL   s   @r   rN   rN   O   s   ( (3 ( "' %#))# # 	#
 # # # # 
		#Z "' %&))& & 	&
 & & !!))& & & 
		&r   rN   c                       e Zd Zdddej                  j
                  j                  fdedee   de	e
ef   de
dej                  j
                  f
 fd	Zd
 Zde
fdZd ZdefdZdefdZ	 	 	 ddej$                  j&                  dedee   dede
de
de
dej$                  j*                  fdZ	 	 ddej$                  j&                  dedee   dede
dej,                  j.                  de
de
dej$                  j*                  fdZ xZS )DoHNameserverNTFurlbootstrap_addressverifywant_gethttp_versionc                 h    t         |           || _        || _        || _        || _        || _        y r	   )r?   r   r^   r_   r`   ra   rb   )r   r^   r_   r`   ra   rb   rA   s         r   r   zDoHNameserver.__init__   s5     	!2 (r   c                      y)NDoHr
   r   s    r   r   zDoHNameserver.kind   rD   r   r   c                      y)NTr
   r   s    r   r   z DoHNameserver.is_always_max_size   s    r   c                     | j                   S r	   r^   r   s    r   r   zDoHNameserver.__str__       xxr   c                     | j                   S r	   rh   r   s    r   r   zDoHNameserver.answer_nameserver   ri   r   c                 L    t        | j                        j                  }|d}|S )Ni  )r   r^   r=   )r   r=   s     r   r   zDoHNameserver.answer_port   s%    !&&<Dr   r   r   r    r!   r"   r#   r$   c                     t         j                  j                  || j                  |||| j                  ||| j
                  | j                   | j                        S N)	r   r    r!   r_   r#   r$   r`   postrb   )r3   r'   httpsr^   r_   r`   ra   rb   r&   s           r   r'   zDoHNameserver.query   sZ     yyHH#"44-+;;mm#**  
 	
r   r(   c	                    K   t         j                  j                  || j                  |||| j                  ||| j
                  | j                   | j                         d {   S 7 wrm   )r3   rZ   ro   r^   r_   r`   ra   rb   r*   s	            r   r+   zDoHNameserver.async_query   sj      ^^))HH#"44-+;;mm#** * 
 
 	
 
s   A!A*#A($A*FFFr,   )r-   r.   r/   r3   r'   HTTPVersionDEFAULTr0   r   r   r1   r   r   r   r   r   r2   r   r4   r5   r6   r7   r8   r9   r+   rK   rL   s   @r   r]   r]      s    ,0#'.1ii.C.C.K.K)) $C=) dCi 	)
 ) ii++)D 3 S  !& %
))
 
 	

 
 
 
 
 
		
@ "' %
))
 
 	

 
 
 !!))
 
 
 
		
r   r]   c                       e Zd Z	 	 	 ddededee   deeef   f fdZd Z		 	 	 dde
j                  j                  ded	ee   d
edededede
j                  j                  fdZ	 	 dde
j                  j                  ded	ee   d
edede
j                   j"                  dedede
j                  j                  fdZ xZS )DoTNameserverr<   r=   hostnamer`   c                 B    t         |   ||       || _        || _        y r	   )r?   r   rv   r`   )r   r<   r=   rv   r`   rA   s        r   r   zDoTNameserver.__init__   s"     	$' r   c                      y)NDoTr
   r   s    r   r   zDoTNameserver.kind  rD   r   r   r   r    r!   r"   r#   r$   r   c           
          t         j                  j                  || j                  | j                  |||| j
                  | j                        S N)r=   r   r#   r$   server_hostnamer`   )r3   r'   tlsr<   r=   rv   r`   r&   s           r   r'   zDoTNameserver.query  sF     yy}}LL-+ MM;;  	
 		
r   r(   c	           
         K   t         j                  j                  || j                  | j                  |||| j
                  | j                         d {   S 7 wr{   )r3   rZ   r}   r<   r=   rv   r`   r*   s	            r   r+   zDoTNameserver.async_query  sV      ^^''LL-+ MM;; ( 	
 	
 		
 	
   AAAA)U  NTrq   r,   )r-   r.   r/   r0   r2   r   r   r1   r   r   r3   r4   r5   r6   r7   r'   r8   r9   r+   rK   rL   s   @r   ru   ru      sJ    "&#'		 	 3-		
 dCi 	 !& %
))
 
 	

 
 
 
 
 
		
: "' %
))
 
 	

 
 
 !!))
 
 
 
		
r   ru   c                       e Zd Z	 	 	 ddededeeef   dee   f fdZd Z		 	 	 dde
j                  j                  ded	ee   d
edededede
j                  j                  fdZ	 	 dde
j                  j                  ded	ee   d
edede
j                   j"                  dedede
j                  j                  fdZ xZS )DoQNameserverr<   r=   r`   r|   c                 B    t         |   ||       || _        || _        y r	   )r?   r   r`   r|   )r   r<   r=   r`   r|   rA   s        r   r   zDoQNameserver.__init__4  s#     	$'.r   c                      y)NDoQr
   r   s    r   r   zDoQNameserver.kind?  rD   r   r   r   r    r!   r"   r#   r$   r   c           
          t         j                  j                  || j                  | j                  |||| j
                  | j                        S N)r=   r   r#   r$   r`   r|   )r3   r'   quicr<   r=   r`   r|   r&   s           r   r'   zDoQNameserver.queryB  sH     yy~~LL-+;; 00  	
 		
r   r(   c	           
         K   t         j                  j                  || j                  | j                  |||| j
                  | j                         d {   S 7 wr   )r3   rZ   r   r<   r=   r`   r|   r*   s	            r   r+   zDoQNameserver.async_queryW  sX      ^^((LL-+;; 00 ) 	
 	
 		
 	
r   )r   TNrq   r,   )r-   r.   r/   r0   r2   r   r1   r   r   r   r3   r4   r5   r6   r7   r'   r8   r9   r+   rK   rL   s   @r   r   r   3  sJ    #')-	/	/ 	/ dCi 		/
 "#	/ !& %
))
 
 	

 
 
 
 
 
		
: "' %
))
 
 	

 
 
 !!))
 
 
 
		
r   r   )typingr   r   urllib.parser   dns.asyncbackendr3   dns.asyncquerydns.inetdns.message	dns.queryr   r;   rN   r]   ru   r   r
   r   r   <module>r      sk    " !     *" *"Zz .R- RjQ
J Q
h8
, 8
v8
, 8
r   