o
    Þý°jU  ã                   @   s(  d Z ddlmZmZ ddlZddlZG dd„ dejjƒZ	G dd„ dej
jƒZded	e	fd
d„Zdeded	e	fdd„Zde	d	eeef fdd„Zdde	ded	efdd„Ze	jZe	jZe	jZe	jZe	jZe	jZe	jZe	jZe	jZe	jZe	jZe	jZe	j Z e	j!Z!e	j"Z"e	j#Z#e	j$Z$e	j%Z%e	j&Z&e	j'Z'e	j(Z(dS )zDNS Result Codes.é    )ÚTupleÚTypeNc                   @   s‚   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZdZdZdZedd„ ƒZedee fdd„ƒZdS )ÚRcoder   é   é   é   é   é   é   é   é   é	   é
   é   é   é   é   é   é   é   é   é   c                 C   s   dS )Néÿ  © ©Úclsr   r   ú|/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/dns/rcode.pyÚ_maximumF   ó   zRcode._maximumÚreturnc                 C   s   t S )N)ÚUnknownRcoder   r   r   r   Ú_unknown_exception_classJ   r   zRcode._unknown_exception_classN)Ú__name__Ú
__module__Ú__qualname__ÚNOERRORÚFORMERRÚSERVFAILÚNXDOMAINÚNOTIMPÚREFUSEDÚYXDOMAINÚYXRRSETÚNXRRSETÚNOTAUTHÚNOTZONEÚ	DSOTYPENIÚBADVERSÚBADSIGÚBADKEYÚBADTIMEÚBADMODEÚBADNAMEÚBADALGÚBADTRUNCÚ	BADCOOKIEÚclassmethodr   r   Ú	Exceptionr!   r   r   r   r   r      s4    
r   c                   @   s   e Zd ZdZdS )r    zA DNS rcode is unknown.N)r"   r#   r$   Ú__doc__r   r   r   r   r    O   s    r    Útextr   c                 C   s
   t  | ¡S )zÖConvert text into an rcode.

    *text*, a ``str``, the textual rcode or an integer in textual form.

    Raises ``dns.rcode.UnknownRcode`` if the rcode mnemonic is unknown.

    Returns a ``dns.rcode.Rcode``.
    )r   Ú	from_text)r=   r   r   r   r>   S   s   

r>   ÚflagsÚ	ednsflagsc                 C   s   | d@ |d? d@ B }t  |¡S )z÷Return the rcode value encoded by flags and ednsflags.

    *flags*, an ``int``, the DNS flags field.

    *ednsflags*, an ``int``, the EDNS flags field.

    Raises ``ValueError`` if rcode is < 0 or > 4095

    Returns a ``dns.rcode.Rcode``.
    é   r   éð  )r   Úmake)r?   r@   Úvaluer   r   r   Ú
from_flags`   s   
rE   rD   c                 C   s4   | dk s| dkrt dƒ‚| d@ }| d@ d> }||fS )zËReturn a (flags, ednsflags) tuple which encodes the rcode.

    *value*, a ``dns.rcode.Rcode``, the rcode.

    Raises ``ValueError`` if rcode is < 0 or > 4095.

    Returns an ``(int, int)`` tuple.
    r   r   zrcode must be >= 0 and <= 4095rA   rB   r   )Ú
ValueError)rD   ÚvÚevr   r   r   Úto_flagsp   s
   
rI   FÚtsigc                 C   s   |r	| t jkr	dS t  | ¡S )z›Convert rcode into text.

    *value*, a ``dns.rcode.Rcode``, the rcode.

    Raises ``ValueError`` if rcode is < 0 or > 4095.

    Returns a ``str``.
    r2   )r   r1   Úto_text)rD   rJ   r   r   r   rK   �   s   

rK   )F))r<   Útypingr   r   Údns.enumÚdnsÚdns.exceptionÚenumÚIntEnumr   Ú	exceptionÚDNSExceptionr    Ústrr>   ÚintrE   rI   ÚboolrK   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r   r   r   r   Ú<module>   s>   5
