
    g'                         S SK JrJr  S SKJr  S SKrS SKrS SKrS SK	rS SK
r " S S5      r " S S\5      r " S S	\5      r " S
 S\5      r " S S\5      r " S S\5      rg)    )OptionalUnion)urlparseNc                      \ rS rSrS rS rS\4S jrS\4S jr	S\4S jr
S\4S jr  SS	\R                  R                  S
\S\\   S\S\S\S\S\R                  R$                  4S jjr  SS	\R                  R                  S
\S\\   S\S\S\R(                  R*                  S\S\S\R                  R$                  4S jjrSrg)
Nameserver   c                     g N selfs    G/home/matz/Project1/venv/lib/python3.13/site-packages/dns/nameserver.py__init__Nameserver.__init__   s        c                     [         er
   NotImplementedErrorr   s    r   __str__Nameserver.__str__       !!r   returnc                     [         er
   r   r   s    r   kindNameserver.kind   r   r   c                     [         er
   r   r   s    r   is_always_max_sizeNameserver.is_always_max_size   r   r   c                     [         er
   r   r   s    r   answer_nameserverNameserver.answer_nameserver   r   r   c                     [         er
   r   r   s    r   answer_portNameserver.answer_port   r   r   requesttimeoutsourcesource_portmax_sizeone_rr_per_rrsetignore_trailingc                     [         er
   r   r   r%   r&   r'   r(   r)   r*   r+   s           r   queryNameserver.query   s
     "!r   backendc	                    #    [         e7fr
   r   	r   r%   r&   r'   r(   r)   r0   r*   r+   s	            r   async_queryNameserver.async_query*   s      "!s   	r   NFF)__name__
__module____qualname____firstlineno__r   r   strr   boolr   r    intr#   dnsmessageQueryMessagefloatr   Messager.   asyncbackendBackendr3   __static_attributes__r   r   r   r   r      s=   ""c ""D ""3 ""S " "' %
"))
" 
" 	
"
 
" 
" 
" 
" 
		
"( "' %"))" " 	"
 " " !!))" " " 
		" "r   r   c                   r   ^  \ rS rSrS\S\4U 4S jjrS\4S jrS\4S jr	S r
S\4S	 jrS\4S
 jrSrU =r$ )AddressAndPortNameserver8   addressportc                 :   > [         TU ]  5         Xl        X l        g r
   )superr   rH   rI   r   rH   rI   	__class__s      r   r   !AddressAndPortNameserver.__init__9   s    	r   r   c                     [         er
   r   r   s    r   r   AddressAndPortNameserver.kind>   r   r   c                     g)NFr   r   s    r   r   +AddressAndPortNameserver.is_always_max_sizeA       r   c                 ^    U R                  5       nU SU R                   SU R                   3$ )N:@)r   rH   rI   )r   ns_kinds     r   r    AddressAndPortNameserver.__str__D   s,    ))+!DLL>499+66r   c                     U R                   $ r
   )rH   r   s    r   r    *AddressAndPortNameserver.answer_nameserverH   s    ||r   c                     U R                   $ r
   )rI   r   s    r   r#   $AddressAndPortNameserver.answer_portK   s    yyr   )rH   rI   )r6   r7   r8   r9   r:   r<   r   r   r;   r   r   r    r#   rD   __classcell__rM   s   @r   rF   rF   8   sP     3 
"c "D 73 S  r   rF   c                   z  ^  \ rS rSrSS\S\4U 4S jjjrS r  SS\R                  R                  S\S\\   S	\S
\S\S\S\R                  R                  4S jjr  SS\R                  R                  S\S\\   S	\S
\S\R                   R"                  S\S\S\R                  R                  4S jjrSrU =r$ )Do53NameserverO   rH   rI   c                 $   > [         TU ]  X5        g r
   )rK   r   rL   s      r   r   Do53Nameserver.__init__P   s    'r   c                     g)NDo53r   r   s    r   r   Do53Nameserver.kindS   s    r   r%   r&   r'   r(   r)   r*   r+   r   c                     U(       a:  [         R                  R                  UU R                  UU R                  UUUUS9nU$ [         R                  R                  UU R                  UU R                  UUSUUSSS9nU$ )N)r&   rI   r'   r(   r*   r+   T)	r&   rI   r'   r(   raise_on_truncationr*   r+   ignore_errorsignore_unexpected)r=   r.   tcprH   rI   udp)	r   r%   r&   r'   r(   r)   r*   r+   responses	            r   r.   Do53Nameserver.queryV   s     yy}}YY'!1 / % 	H0  yy}}YY'$(!1 /""& % H r   r0   c	                 2  #    U(       aC  [         R                  R                  UU R                  UU R                  UUUUUS9	I S h  vN n	U	$ [         R                  R                  UU R                  UU R                  UUSUUUSSS9I S h  vN n	U	$  NL N7f)N)r&   rI   r'   r(   r0   r*   r+   T)
r&   rI   r'   r(   rh   r0   r*   r+   ri   rj   )r=   
asyncqueryrk   rH   rI   rl   )
r   r%   r&   r'   r(   r)   r0   r*   r+   rm   s
             r   r3   Do53Nameserver.async_query{   s       ^^//YY'!1 / 0 
 
H4  !^^//YY'$(!1 /""& 0  H 5
s%   ABBABBBBr   )5   r5   )r6   r7   r8   r9   r:   r<   r   r   r=   r>   r?   r@   r   r;   rA   r.   rB   rC   r3   rD   r]   r^   s   @r   r`   r`   O   s"   ( (3 ( ( "' %#))# # 	#
 # # # # 
		#Z "' %&))& & 	&
 & & !!))& & & 
		& &r   r`   c                   4  ^  \ rS rSrSSS\R
                  R                  R                  4S\S\	\   S\
\\4   S\S	\R
                  R                  4
U 4S
 jjjrS rS\4S jrS rS\4S jrS\4S jr   SS\R&                  R(                  S\S\	\   S\S\S\S\S\R&                  R,                  4S jjr  SS\R&                  R(                  S\S\	\   S\S\S\R.                  R0                  S\S\S\R&                  R,                  4S jjrSrU =r$ )DoHNameserver   NTFurlbootstrap_addressverifywant_gethttp_versionc                 ^   > [         TU ]  5         Xl        X l        X0l        X@l        XPl        g r
   )rK   r   rv   rw   rx   ry   rz   )r   rv   rw   rx   ry   rz   rM   s         r   r   DoHNameserver.__init__   s+     	!2 (r   c                     g)NDoHr   r   s    r   r   DoHNameserver.kind   rS   r   r   c                     g)NTr   r   s    r   r    DoHNameserver.is_always_max_size   s    r   c                     U R                   $ r
   rv   r   s    r   r   DoHNameserver.__str__       xxr   c                     U R                   $ r
   r   r   s    r   r    DoHNameserver.answer_nameserver   r   r   c                 N    [        U R                  5      R                  nUc  SnU$ )Ni  )r   rv   rI   )r   rI   s     r   r#   DoHNameserver.answer_port   s%    !&&<Dr   r%   r&   r'   r(   r)   r*   r+   c                     [         R                  R                  UU R                  UUUU R                  UUU R
                  U R                  (       + U R                  S9$ N)	r&   r'   r(   rw   r*   r+   rx   postrz   )r=   r.   httpsrv   rw   rx   ry   rz   r-   s           r   r.   DoHNameserver.query   sZ     yyHH#"44-+;;mm#**  
 	
r   r0   c	                    #    [         R                  R                  UU R                  UUUU R                  UUU R
                  U R                  (       + U R                  S9I S h  vN $  N7fr   )r=   rp   r   rv   rw   rx   ry   rz   r2   s	            r   r3   DoHNameserver.async_query   si      ^^))HH#"44-+;;mm#** * 
 
 	
 
s   A"A+$A)%A+)rw   rz   rv   rx   ry   FFFr5   )r6   r7   r8   r9   r=   r.   HTTPVersionDEFAULTr:   r   r   r;   r   r   r   r   r    r<   r#   r>   r?   r@   rA   rB   rC   r3   rD   r]   r^   s   @r   rt   rt      s    ,0#'.1ii.C.C.K.K)) $C=) dCi 	)
 ) ii++) )D 3 S  !& %
))
 
 	

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

 
 
 !!))
 
 
 
		
 
r   rt   c                     ^  \ rS rSr   SS\S\S\\   S\\\4   4U 4S jjjr	S r
   SS\R                  R                  S	\S
\\   S\S\S\S\S\R                  R                  4S jjr  SS\R                  R                  S	\S
\\   S\S\S\R"                  R$                  S\S\S\R                  R                  4S jjrSrU =r$ )DoTNameserver   rH   rI   hostnamerx   c                 <   > [         TU ]  X5        X0l        X@l        g r
   )rK   r   r   rx   )r   rH   rI   r   rx   rM   s        r   r   DoTNameserver.__init__   s     	' r   c                     g)NDoTr   r   s    r   r   DoTNameserver.kind  rS   r   r%   r&   r'   r(   r)   r*   r+   r   c                     [         R                  R                  UU R                  U R                  UUUU R
                  U R                  S9$ N)rI   r&   r*   r+   server_hostnamerx   )r=   r.   tlsrH   rI   r   rx   r-   s           r   r.   DoTNameserver.query  sF     yy}}LL-+ MM;;  	
 		
r   r0   c	                    #    [         R                  R                  UU R                  U R                  UUUU R
                  U R                  S9I S h  vN $  N7fr   )r=   rp   r   rH   rI   r   rx   r2   s	            r   r3   DoTNameserver.async_query  sU      ^^''LL-+ MM;; ( 	
 	
 		
 	
   AAAA)r   rx   )U  NTr   r5   )r6   r7   r8   r9   r:   r<   r   r   r;   r   r   r=   r>   r?   r@   rA   r.   rB   rC   r3   rD   r]   r^   s   @r   r   r      sT    "&#'		 	 3-		
 dCi 	 	 !& %
))
 
 	

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

 
 
 !!))
 
 
 
		
 
r   r   c                     ^  \ rS rSr   SS\S\S\\\4   S\\   4U 4S jjjr	S r
   SS\R                  R                  S	\S
\\   S\S\S\S\S\R                  R                  4S jjr  SS\R                  R                  S	\S
\\   S\S\S\R"                  R$                  S\S\S\R                  R                  4S jjrSrU =r$ )DoQNameserveri3  rH   rI   rx   r   c                 <   > [         TU ]  X5        X0l        X@l        g r
   )rK   r   rx   r   )r   rH   rI   rx   r   rM   s        r   r   DoQNameserver.__init__4  s     	'.r   c                     g)NDoQr   r   s    r   r   DoQNameserver.kind?  rS   r   r%   r&   r'   r(   r)   r*   r+   r   c                     [         R                  R                  UU R                  U R                  UUUU R
                  U R                  S9$ N)rI   r&   r*   r+   rx   r   )r=   r.   quicrH   rI   rx   r   r-   s           r   r.   DoQNameserver.queryB  sH     yy~~LL-+;; 00  	
 		
r   r0   c	                    #    [         R                  R                  UU R                  U R                  UUUU R
                  U R                  S9I S h  vN $  N7fr   )r=   rp   r   rH   rI   rx   r   r2   s	            r   r3   DoQNameserver.async_queryW  sW      ^^((LL-+;; 00 ) 	
 	
 		
 	
r   )r   rx   )r   TNr   r5   )r6   r7   r8   r9   r:   r<   r   r;   r   r   r   r=   r>   r?   r@   rA   r.   rB   rC   r3   rD   r]   r^   s   @r   r   r   3  sT    #')-	/	/ 	/ dCi 		/
 "#	/ 	/ !& %
))
 
 	

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

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