
    Eqg'                         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dS )    )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dS )
Nameserverc                     d S N selfs    @/var/www/html/env/lib/python3.11/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   F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           r	   r   	r   r   r   r    r!   r"   r(   r#   r$   s	            r   async_queryzNameserver.async_query*   s       "!r   NFF)__name__
__module____qualname__r   r   strr   boolr   r   intr   dnsmessageQueryMessagefloatr   Messager'   asyncbackendBackendr+   r
   r   r   r   r      s         " " ""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                 d    t                                                       || _        || _        d S 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                     dS )NFr
   r   s    r   r   z+AddressAndPortNameserver.is_always_max_sizeA       ur   c                 R    |                                  }| d| j         d| j         S )N:@)r   r<   r=   )r   ns_kinds     r   r   z AddressAndPortNameserver.__str__D   s/    ))++66DL66496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
    yr   )r-   r.   r/   r0   r2   r   r   r1   r   r   r   r   __classcell__rA   s   @r   r;   r;   8   s         3      
"c " " " "D    7 7 73    S        r   r;   c                       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 )Do53Nameserver5   r<   r=   c                 L    t                                          ||           d S r	   )r?   r   r@   s      r   r   zDo53Nameserver.__init__P   s#    $'''''r   c                     dS )NDo53r
   r   s    r   r   zDo53Nameserver.kindS   s    vr   Fr   r   r    r!   r"   r#   r$   r   c                     |r2t           j                            || j        || j        ||||          }n4t           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      	y}}Y'!1 / % 	 	HH y}}Y'$(!1 /""& %  H r   r(   c	                    K   |r9t           j                            || j        || j        |||||	  	         d {V }	n;t           j                            || j        || j        ||d|||dd           d {V }	|	S )N)r   r=   r    r!   r(   r#   r$   T)
r   r=   r    r!   rT   r(   r#   r$   rU   rV   )r3   
asyncqueryrW   r<   r=   rX   )
r   r   r   r    r!   r"   r(   r#   r$   rY   s
             r   r+   zDo53Nameserver.async_query{   s        	 ^//Y'!1 / 0 
 
 
 
 
 
 
 
HH !^//Y'$(!1 /""& 0        H r   )rO   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   sj       ( ( (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                     t                                                       || _        || _        || _        || _        || _        d S r	   )r?   r   r^   r_   r`   ra   rb   )r   r^   r_   r`   ra   rb   rA   s         r   r   zDoHNameserver.__init__   sF     	!2 (r   c                     dS )NDoHr
   r   s    r   r   zDoHNameserver.kind   rD   r   r   c                     dS )NTr
   r   s    r   r   z DoHNameserver.is_always_max_size   s    tr   c                     | j         S r	   r^   r   s    r   r   zDoHNameserver.__str__   	    xr   c                     | j         S r	   rh   r   s    r   r   zDoHNameserver.answer_nameserver   ri   r   c                 @    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                  S N)	r   r    r!   r_   r#   r$   r`   postrb   )r3   r'   httpsr^   r_   r`   ra   rb   r&   s           r   r'   zDoHNameserver.query   sQ     yH#"4-+;m#*  
 
 	
r   r(   c	                    K   t           j                            || j        |||| j        ||| j        | j         | j                   d {V S rm   )r3   r[   ro   r^   r_   r`   ra   rb   r*   s	            r   r+   zDoHNameserver.async_query   su       ^))H#"4-+;m#* * 
 
 
 
 
 
 
 
 	
r   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#'.1i.C.K) )) $C=) dCi 	)
 ) i+) ) ) ) ) )  D      3    S     !& %
 
)
 
 	

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

 
 
 !)
 
 
 
	
 
 
 
 
 
 
 
r   r]   c                   8    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 )DoTNameserverU  NTr<   r=   hostnamer`   c                 h    t                                          ||           || _        || _        d S r	   )r?   r   rw   r`   )r   r<   r=   rw   r`   rA   s        r   r   zDoTNameserver.__init__   s1     	$''' r   c                     dS )NDoTr
   r   s    r   r   zDoTNameserver.kind  rD   r   Fr   r   r    r!   r"   r#   r$   r   c           
      x    t           j                            || j        | j        |||| j        | j                  S N)r=   r   r#   r$   server_hostnamer`   )r3   r'   tlsr<   r=   rw   r`   r&   s           r   r'   zDoTNameserver.query  sA     y}}L-+ M;  	
 	
 		
r   r(   c	           
         K   t           j                            || j        | j        |||| j        | j                   d {V S r|   )r3   r[   r~   r<   r=   rw   r`   r*   s	            r   r+   zDoTNameserver.async_query  se       ^''L-+ M; ( 	
 	
 	
 	
 	
 	
 	
 	
 		
r   )rv   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      s        "&#'	 		 	 3-		
 dCi 	 	 	 	 	 	   !& %
 
)
 
 	

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

 
 
 !)
 
 
 
	
 
 
 
 
 
 
 
r   ru   c                   8    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 )DoQNameserverrv   TNr<   r=   r`   r}   c                 h    t                                          ||           || _        || _        d S r	   )r?   r   r`   r}   )r   r<   r=   r`   r}   rA   s        r   r   zDoQNameserver.__init__4  s4     	$'''.r   c                     dS )NDoQr
   r   s    r   r   zDoQNameserver.kind?  rD   r   Fr   r   r    r!   r"   r#   r$   r   c           
      x    t           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  sB     y~~L-+; 0  	
 	
 		
r   r(   c	           
         K   t           j                            || j        | j        |||| j        | j                   d {V S r   )r3   r[   r   r<   r=   r`   r}   r*   s	            r   r+   zDoQNameserver.async_queryW  sf       ^((L-+; 0 ) 	
 	
 	
 	
 	
 	
 	
 	
 		
r   )rv   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  s        #')-	/ 	/	/ 	/ 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      s   " " " " " " " " ! ! ! ! ! !                 *" *" *" *" *" *" *" *"Z    z   .R R R R R- R R RjQ
 Q
 Q
 Q
 Q
J Q
 Q
 Q
h8
 8
 8
 8
 8
, 8
 8
 8
v8
 8
 8
 8
 8
, 8
 8
 8
 8
 8
r   