o
    h'                     @   s   d dl mZ d dlZd dlZd dlZd dlZG dd dZG dd deZG dd deZ	G d	d
 d
eZ
G dd deZG dd deZdS )    )urlparseNc                   @   s   e Zd Zdd Zdd ZdefddZdefdd	Zdefd
dZ	de
fddZ		ddejjdededB de
dedededejjfddZ		ddejjdededB de
dedejjdededejjfddZdS )
Nameserverc                 C   s   d S N selfr   r   P/var/www/html/pro-man-master/venv/lib/python3.10/site-packages/dns/nameserver.py__init__
      zNameserver.__init__c                 C      t r   NotImplementedErrorr   r   r   r   __str__   r
   zNameserver.__str__returnc                 C   r   r   r   r   r   r   r   kind   r
   zNameserver.kindc                 C   r   r   r   r   r   r   r   is_always_max_size   r
   zNameserver.is_always_max_sizec                 C   r   r   r   r   r   r   r   answer_nameserver   r
   zNameserver.answer_nameserverc                 C   r   r   r   r   r   r   r   answer_port   r
   zNameserver.answer_portFrequesttimeoutsourceNsource_portmax_sizeone_rr_per_rrsetignore_trailingc                 C   r   r   r   r   r   r   r   r   r   r   r   r   r   r   query   s   
zNameserver.querybackendc	           	         s   t r   r   	r   r   r   r   r   r   r   r   r   r   r   r   async_query(   s   zNameserver.async_queryFF)__name__
__module____qualname__r	   r   strr   boolr   r   intr   dnsmessageQueryMessagefloatMessager   asyncbackendBackendr   r   r   r   r   r   	   s^    
	
	
r   c                       sf   e Zd Zdedef fddZdefddZdefdd	Zd
d Z	defddZ
defddZ  ZS )AddressAndPortNameserveraddressportc                    s   t    || _|| _d S r   )superr	   r/   r0   r   r/   r0   	__class__r   r   r	   7   s   

z!AddressAndPortNameserver.__init__r   c                 C   r   r   r   r   r   r   r   r   <   r
   zAddressAndPortNameserver.kindc                 C      dS )NFr   r   r   r   r   r   ?   r
   z+AddressAndPortNameserver.is_always_max_sizec                 C   s    |   }| d| j d| j S )N:@)r   r/   r0   )r   ns_kindr   r   r   r   B   s   z AddressAndPortNameserver.__str__c                 C      | j S r   )r/   r   r   r   r   r   F      z*AddressAndPortNameserver.answer_nameserverc                 C   r9   r   )r0   r   r   r   r   r   I   r:   z$AddressAndPortNameserver.answer_port)r!   r"   r#   r$   r&   r	   r   r%   r   r   r   r   __classcell__r   r   r3   r   r.   6   s    r.   c                       s   e Zd Zddedef fddZdd Z		dd	ejj	d
e
dedB dededededejjfddZ		dd	ejj	d
e
dedB dededejjdededejjfddZ  ZS )Do53Nameserver5   r/   r0   c                    s   t  || d S r   )r1   r	   r2   r3   r   r   r	   N   s   zDo53Nameserver.__init__c                 C   r5   )NDo53r   r   r   r   r   r   Q   r
   zDo53Nameserver.kindFr   r   r   Nr   r   r   r   r   c           	      C   sR   |rt jj|| j|| j||||d}|S t jj|| j|| j||d||ddd}|S )N)r   r0   r   r   r   r   T)	r   r0   r   r   raise_on_truncationr   r   ignore_errorsignore_unexpected)r'   r   tcpr/   r0   udp)	r   r   r   r   r   r   r   r   responser   r   r   r   T   s4   
zDo53Nameserver.queryr   c	           
         sd   |rt jj|| j|| j|||||d	I d H }	|	S t jj|| j|| j||d|||dddI d H }	|	S )N)r   r0   r   r   r   r   r   T)
r   r0   r   r   r?   r   r   r   r@   rA   )r'   
asyncqueryrB   r/   r0   rC   )
r   r   r   r   r   r   r   r   r   rD   r   r   r   r   y   s:   zDo53Nameserver.async_query)r=   r    )r!   r"   r#   r$   r&   r	   r   r'   r(   r)   r*   r%   r+   r   r,   r-   r   r;   r   r   r3   r   r<   M   sV    
	
-	
r<   c                       s
  e Zd ZdddejjjfdededB deeB dedejjf
 fd	d
Z	dd Z
defddZdd ZdefddZdefddZ			d"dejjdededB dededededejjfddZ		d#dejjdededB dededejjdededejjfd d!Z  ZS )$DoHNameserverNTFurlbootstrap_addressverifywant_gethttp_versionc                    s,   t    || _|| _|| _|| _|| _d S r   )r1   r	   rG   rH   rI   rJ   rK   )r   rG   rH   rI   rJ   rK   r3   r   r   r	      s   

zDoHNameserver.__init__c                 C   r5   )NDoHr   r   r   r   r   r      r
   zDoHNameserver.kindr   c                 C   r5   )NTr   r   r   r   r   r      r
   z DoHNameserver.is_always_max_sizec                 C   r9   r   rG   r   r   r   r   r      r:   zDoHNameserver.__str__c                 C   r9   r   rM   r   r   r   r   r      r:   zDoHNameserver.answer_nameserverc                 C   s   t | jj}|d u rd}|S )Ni  )r   rG   r0   )r   r0   r   r   r   r      s   zDoHNameserver.answer_portr   r   r   r   r   r   r   c                 C   s.   t jj|| j|||| j||| j| j | jdS N)	r   r   r   rH   r   r   rI   postrK   )r'   r   httpsrG   rH   rI   rJ   rK   r   r   r   r   r      s   
zDoHNameserver.queryr   c	           	         s6   t jj|| j|||| j||| j| j | jdI d H S rN   )r'   rE   rP   rG   rH   rI   rJ   rK   r   r   r   r   r      s   zDoHNameserver.async_queryFFFr    )r!   r"   r#   r'   r   HTTPVersionDEFAULTr$   r%   r	   r   r   r   r   r&   r   r(   r)   r*   r+   r,   r-   r   r;   r   r   r3   r   rF      s|    	
 	
rF   c                       s   e Zd Z			ddedededB deeB f fdd	Zd
d Z			ddej	j
dededB dededededej	jfddZ		ddej	j
dededB dededejjdededej	jfddZ  ZS )DoTNameserverU  NTr/   r0   hostnamerI   c                       t  || || _|| _d S r   )r1   r	   rV   rI   )r   r/   r0   rV   rI   r3   r   r   r	         
zDoTNameserver.__init__c                 C   r5   )NDoTr   r   r   r   r   r     r
   zDoTNameserver.kindFr   r   r   r   r   r   r   r   c              
   C   $   t jj|| j| j|||| j| jdS N)r0   r   r   r   server_hostnamerI   )r'   r   tlsr/   r0   rV   rI   r   r   r   r   r        
zDoTNameserver.queryr   c	           	   
      ,   t jj|| j| j|||| j| jdI d H S r[   )r'   rE   r]   r/   r0   rV   rI   r   r   r   r   r        zDoTNameserver.async_query)rU   NTrQ   r    r!   r"   r#   r$   r&   r%   r	   r   r'   r(   r)   r*   r+   r   r,   r-   r   r;   r   r   r3   r   rT      n    		
	
rT   c                       s   e Zd Z			ddededeeB dedB f fdd	Zd
d Z			ddej	j
dededB dededededej	jfddZ		ddej	j
dededB dededejjdededej	jfddZ  ZS )DoQNameserverrU   TNr/   r0   rI   r\   c                    rW   r   )r1   r	   rI   r\   )r   r/   r0   rI   r\   r3   r   r   r	   2  rX   zDoQNameserver.__init__c                 C   r5   )NDoQr   r   r   r   r   r   =  r
   zDoQNameserver.kindFr   r   r   r   r   r   r   r   c              
   C   rZ   N)r0   r   r   r   rI   r\   )r'   r   quicr/   r0   rI   r\   r   r   r   r   r   @  r^   zDoQNameserver.queryr   c	           	   
      r_   re   )r'   rE   rf   r/   r0   rI   r\   r   r   r   r   r   U  r`   zDoQNameserver.async_query)rU   TNrQ   r    ra   r   r   r3   r   rc   1  rb   rc   )urllib.parser   dns.asyncbackendr'   dns.asyncquerydns.message	dns.queryr   r.   r<   rF   rT   rc   r   r   r   r   <module>   s    -UT;