o
    2³cV
  ã                   @   s8   d Z ddlZdZG dd„ dejjƒZdd„ Zdd	„ ZdS )
zDNS TTL conversion.é    Niÿÿÿc                   @   s   e Zd ZdZdS )ÚBadTTLz!DNS TTL value is not well-formed.N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__© r   r   ú=/var/www/html/gps/gps/lib/python3.10/site-packages/dns/ttl.pyr      s    r   c                 C   s  |   ¡ r	t| ƒ}nst| ƒdkrt‚d}d}d}| D ]Z}|  ¡ r,|d9 }|t|ƒ7 }d}q|r0t‚| ¡ }|dkr?||d 7 }n0|dkrJ||d 7 }n%|d	krU||d
 7 }n|dkr`||d 7 }n|dkri||7 }ntd| ƒ‚d}d}q|dks|tdƒ‚|dk s„|tkrˆtdƒ‚|S )zûConvert the text form of a TTL to an integer.

    The BIND 8 units syntax for TTLs (e.g. '1w6d4h3m10s') is supported.

    *text*, a ``str``, the textual TTL.

    Raises ``dns.ttl.BadTTL`` if the TTL is not well-formed.

    Returns an ``int``.
    r   Té
   FÚwi€:	 Údi€Q Úhi  Úmé<   Úszunknown unit '%s'ztrailing integerz0TTL should be between 0 and 2^31 - 1 (inclusive))ÚisdigitÚintÚlenr   ÚlowerÚMAX_TTL)ÚtextÚtotalÚcurrentÚ
need_digitÚcr   r   r   Ú	from_text   sB   

r   c                 C   s,   t | tƒr| S t | tƒrtj | ¡S tdƒ‚)Nzcannot convert value to TTL)Ú
isinstancer   ÚstrÚdnsÚttlr   Ú
ValueError)Úvaluer   r   r   ÚmakeN   s
   

r!   )	r   Údns.exceptionr   r   Ú	exceptionÚSyntaxErrorr   r   r!   r   r   r   r   Ú<module>   s   2