HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //home/arjun/projects/env/lib/python3.10/site-packages/dns/__pycache__/wire.cpython-310.pyc
o

!we�@sFddlZddlZddlmZmZmZddlZddlZGdd�d�Z	dS)�N)�Iterator�Optional�Tuplec@seZdZd)dedefdd�Zdefdd�Zd	edefd
d�Zd*d
edefdd�Zdefdd�Z	defdd�Z
defdd�Zdefdd�Zdefdd�Z
dedefdd�Zd+dedddfd d!�Zd"eddfd#d$�Zejd	edefd%d&��Zejdefd'd(��ZdS),�Parserr�wire�currentcCs0||_d|_t|j�|_|r|�|�||_dS�Nr)rr�len�end�seek�furthest)�selfrr�r�A/home/arjun/projects/env/lib/python3.10/site-packages/dns/wire.py�__init__s

zParser.__init__�returncCs|j|jS�N)r
r�r
rrr�	remainingszParser.remaining�sizecCsX|dksJ�||��krtjj�|j|j|j|�}|j|7_t|j|j�|_|Sr)r�dns�	exception�	FormErrorrr�maxr)r
r�outputrrr�	get_bytesszParser.get_bytes��length_sizecCst�|�|�d�}|�|�S)N�big��int�
from_bytesr)r
r�lengthrrr�get_counted_bytes s
zParser.get_counted_bytescCs|�|���Sr)rrrrrr�
get_remaining$szParser.get_remainingcC�t�d|�d��dS)Nz!Brr��struct�unpackrrrrr�	get_uint8'�zParser.get_uint8cCr%)Nz!H�rr&rrrr�
get_uint16*r*zParser.get_uint16cCr%)Nz!I�rr&rrrr�
get_uint32-r*zParser.get_uint32cCst�|�d�d�S)N�rrrrrr�
get_uint480szParser.get_uint48�formatcCst�||�t�|���Sr)r'r(r�calcsize)r
r1rrr�
get_struct3szParser.get_structN�originz
dns.name.NamecCstj�|�}|r
|�|�}|Sr)r�name�from_wire_parser�
relativize)r
r4r5rrr�get_name6s
zParser.get_name�wherecCs$|dks	||jkr
tjj�||_dSr)r
rrrr)r
r9rrrr<s
zParser.seekccsd�|dksJ�||��krtjj�|j}z|j||_dV|j|jkr(tjj�W||_dS||_wr)rrrrr
r)r
r�	saved_endrrr�restrict_toCs��zParser.restrict_toccs"�z
dVW|j|_dS|j|_wr)rrrrrr�restore_furthestTs�zParser.restore_furthest)r)rr)�__name__�
__module__�__qualname__�bytesr rrrr#r$r)r,r.r0�strrr3rr8r�
contextlib�contextmanagerrr;r<rrrrrs"	r)
rBr'�typingrrr�
dns.exceptionr�dns.namerrrrr�<module>s