
    h'                         d dl m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)    )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dz  de
dedededej                  j                   fdZ	 	 ddej                  j                  d	ed
edz  de
dedej$                  j&                  dededej                  j                   fdZy)
Nameserverc                      y N selfs    L/var/www/html/eduruby.in/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sourceN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   	FF)__name__
__module____qualname__r   r   strr   boolr   r   intr   dnsmessageQueryMessagefloatMessager%   asyncbackendBackendr)   r   r   r   r   r   	   s8   ""c ""D ""3 ""S " "' %
"))
" 
" d
	
"
 
" 
" 
" 
" 
		
"( "' %"))" " d
	"
 " " !!))" " " 
		"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__7   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_size?       r   c                 ^    | j                         }| d| j                   d| j                   S )N:@)r   r:   r;   )r
   ns_kinds     r   r   z AddressAndPortNameserver.__str__B   s,    ))+!DLL>499+66r   c                     | j                   S r   )r:   r	   s    r   r   z*AddressAndPortNameserver.answer_nameserverF   s    ||r   c                     | j                   S r   )r;   r	   s    r   r   z$AddressAndPortNameserver.answer_portI   s    yyr   )r+   r,   r-   r.   r0   r   r   r/   r   r   r   r   __classcell__r?   s   @r   r9   r9   6   sK     3 
"c "D 73 S r   r9   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dz  d	ed
edededej                  j                  fdZ	 	 ddej                  j                  de
dedz  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__N   s    $'r   c                      y)NDo53r   r	   s    r   r   zDo53Nameserver.kindQ   s    r   r   r   r   Nr   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)r1   r%   tcpr:   r;   udp)	r
   r   r   r   r   r    r!   r"   responses	            r   r%   zDo53Nameserver.queryT   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   rQ   r&   r!   r"   rR   rS   )r1   
asyncqueryrT   r:   r;   rU   )
r
   r   r   r   r   r    r&   r!   r"   rV   s
             r   r)   zDo53Nameserver.async_queryy   s       ^^//YY'!1 / 0 
 
H4  !^^//YY'$(!1 /""& 0  H 5
s%   ABBABBBB)5   r*   )r+   r,   r-   r.   r0   r   r   r1   r2   r3   r4   r/   r5   r%   r6   r7   r)   rI   rJ   s   @r   rL   rL   M   s   ( (3 ( "' %#))# # d
	#
 # # # # 
		#Z "' %&))& & d
	&
 & & !!))& & & 
		&r   rL   c                       e Zd Zdddej                  j
                  j                  fdededz  deez  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dz  dededededej                   j&                  fdZ	 	 ddej                   j"                  dededz  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^   r_   r`   )r
   r\   r]   r^   r_   r`   r?   s         r   r   zDoHNameserver.__init__   s5     	!2 (r   c                      y)NDoHr   r	   s    r   r   zDoHNameserver.kind   rB   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   rf   r	   s    r   r   zDoHNameserver.answer_nameserver   rg   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^   postr`   )r1   r%   httpsr\   r]   r^   r_   r`   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rk   )r1   rX   rm   r\   r]   r^   r_   r`   r(   s	            r   r)   zDoHNameserver.async_query   sj      ^^))HH#"44-+;;mm#** * 
 
 	
 
s   A!A*#A($A*FFFr*   )r+   r,   r-   r1   r%   HTTPVersionDEFAULTr.   r/   r   r   r   r   r   r0   r   r2   r3   r4   r5   r6   r7   r)   rI   rJ   s   @r   r[   r[      s    )-!.1ii.C.C.K.K)) :) s
	)
 ) ii++)D 3 S  !& %
))
 
 d
	

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

 
 
 !!))
 
 
 
		
r   r[   c                       e Zd Z	 	 	 ddedededz  deez  f fdZd Z	 	 	 ddej                  j                  d	ed
edz  dededededej                  j                  fdZ	 	 ddej                  j                  d	ed
edz  dededej                  j                  dededej                  j                  fdZ xZS )DoTNameserverNr:   r;   hostnamer^   c                 B    t         |   ||       || _        || _        y r   )r=   r   rt   r^   )r
   r:   r;   rt   r^   r?   s        r   r   zDoTNameserver.__init__   s"     	$' r   c                      y)NDoTr   r	   s    r   r   zDoTNameserver.kind  rB   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^   )r1   r%   tlsr:   r;   rt   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ry   )r1   rX   r{   r:   r;   rt   r^   r(   s	            r   r)   zDoTNameserver.async_query  sV      ^^''LL-+ MM;; ( 	
 	
 		
 	
   AAAA)U  NTro   r*   r+   r,   r-   r.   r0   r/   r   r   r1   r2   r3   r4   r5   r%   r6   r7   r)   rI   rJ   s   @r   rs   rs      sE    #!		 	 *		
 s
	 !& %
))
 
 d
	

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

 
 
 !!))
 
 
 
		
r   rs   c                       e Zd Z	 	 	 ddededeez  dedz  f fdZd Z	 	 	 ddej                  j                  d	ed
edz  dededededej                  j                  fdZ	 	 ddej                  j                  d	ed
edz  dededej                  j                  dededej                  j                  fdZ xZS )DoQNameserverNr:   r;   r^   rz   c                 B    t         |   ||       || _        || _        y r   )r=   r   r^   rz   )r
   r:   r;   r^   rz   r?   s        r   r   zDoQNameserver.__init__2  s#     	$'.r   c                      y)NDoQr   r	   s    r   r   zDoQNameserver.kind=  rB   r   r   r   r   r   r    r!   r"   r   c           
          t         j                  j                  || j                  | j                  |||| j
                  | j                        S N)r;   r   r!   r"   r^   rz   )r1   r%   quicr:   r;   r^   rz   r$   s           r   r%   zDoQNameserver.query@  sH     yy~~LL-+;; 00  	
 		
r   r&   c	           
         K   t         j                  j                  || j                  | j                  |||| j
                  | j                         d {   S 7 wr   )r1   rX   r   r:   r;   r^   rz   r(   s	            r   r)   zDoQNameserver.async_queryU  sX      ^^((LL-+;; 00 ) 	
 	
 		
 	
r}   )r~   TNro   r*   r   rJ   s   @r   r   r   1  sE    !&*	/	/ 	/ s
		/
 t	/ !& %
))
 
 d
	

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

 
 
 !!))
 
 
 
		
r   r   )urllib.parser   dns.asyncbackendr1   dns.asyncquerydns.message	dns.queryr   r9   rL   r[   rs   r   r   r   r   <module>r      se    !    *" *"Zz .R- RjQ
J Q
h8
, 8
v8
, 8
r   