o
    Þý°j'  ã                   @   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   ú�/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/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 )ÚDo53Nameserveré5   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 )ÚDoTNameserveréU  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;