o
    2c                     @   s   d 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d Z
d	d
 Zdd Zd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.    Nc                   @   sx   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d ZdS )Rcoder                           	   
                              c                 C   s   dS )N   clsr   r   ?/var/www/html/gps/gps/lib/python3.10/site-packages/dns/rcode.py_maximumC      zRcode._maximumc                 C   s   t S )N)UnknownRcoder   r   r   r   _unknown_exception_classG   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   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   L   s    r   c                 C   s
   t | S )zConvert 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 an ``int``.
    )r   	from_text)textr   r   r   r9   P   s   

r9   c                 C   s   | d@ |d? d@ B }|S )zReturn 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 an ``int``.
       r     r   )flags	ednsflagsvaluer   r   r   
from_flags]   s   r@   c                 C   s4   | dk s| dkrt d| d@ }| d@ d> }||fS )zReturn a (flags, ednsflags) tuple which encodes the rcode.

    *value*, an ``int``, the rcode.

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

    Returns an ``(int, int)`` tuple.
    r   r   zrcode must be >= 0 and <= 4095r;   r<   r   )
ValueError)r?   vevr   r   r   to_flagsm   s
   
rD   Fc                 C   s   |r	| t jkr	dS t | S )zConvert rcode into text.

    *value*, an ``int``, the rcode.

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

    Returns a ``str``.
    r/   )r   r.   to_text)r?   tsigr   r   r   rE   ~   s   

rE   )F)#r8   dns.enumdnsdns.exceptionenumIntEnumr   	exceptionDNSExceptionr   r9   r@   rD   rE   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r   r   r   r   <module>   s<   5

