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/quic/__pycache__/_common.cpython-310.pyc
o

!we�@s�ddlZddlZddlZddlmZmZddlZddlZddl	Z
dZGdd�de�Z
Gdd�d�ZGdd	�d	�ZGd
d�d�ZGdd
�d
e�ZGdd�d�ZGdd�de�ZdS)�N)�Any�Optionalic@seZdZdS)�
UnexpectedEOFN)�__name__�
__module__�__qualname__�rr�I/home/arjun/projects/env/lib/python3.10/site-packages/dns/quic/_common.pyrsrc@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�BuffercCsd|_d|_dS)N�F)�_buffer�	_seen_end��selfrrr	�__init__s
zBuffer.__init__cCs*|jrdS|j|7_|rd|_dSdS)NT)r
r�r�data�is_endrrr	�puts
�z
Buffer.putcCs t|j�|kr	dS|jrt�dS)NTF)�lenrr
r)r�amountrrr	�have s
zBuffer.havecC�|jS�N)r
rrrr	�seen_end'�zBuffer.seen_endcCs0|�|�sJ�|jd|�}|j|d�|_|Sr)rr)rrrrrr	�get*sz
Buffer.getN)rrrrrrrrrrrr	r
sr
c@sDeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�BaseQuicStreamcCs||_||_t�|_d|_dS�Nr)�_connection�
_stream_idr
r�
_expecting)r�
connection�	stream_idrrr	r2s
zBaseQuicStream.__init__cCrr)r rrrr	�id8rzBaseQuicStream.idcCs |durt��|}|Sd}|Sr)�time)r�timeout�
expirationrrr	�_expiration_from_timeout;s
�z'BaseQuicStream._expiration_from_timeoutcCs&|durt|t��d�}|Sd}|S)Ng)�maxr%)rr'r&rrr	�_timeout_from_expirationBs
�z'BaseQuicStream._timeout_from_expirationcCst|�}t�d|�|S)Nz!H)r�struct�pack)r�datagram�lrrr	�_encapsulateLszBaseQuicStream._encapsulatecCs&|j�||�|jdko|j�|j�Sr)rrr!rrrrr	�_common_add_inputPsz BaseQuicStream._common_add_inputcCs |j�|j�|j�dd�dS)NrT)r�close_streamr rrrrrr	�_closeTszBaseQuicStream._closeN)
rrrrr$r(r*r/r0r2rrrr	r1s
rc@s2eZdZ	ddd�Zdd�Zd
dd	�Zd
d�ZdS)�BaseQuicConnectionNrcCs�d|_||_||_||_d|_||_i|_tj�	|�|_
tj�||f�|_|durA|dkrA|j
t
jkr6d}n|j
t
jkr?d}nt�|rJ||f|_dSd|_dS)NFrz0.0.0.0z::)�_doner�_address�_port�_closed�_manager�_streams�dns�inet�af_for_address�_af�low_level_address_tuple�_peer�socket�AF_INET�AF_INET6�NotImplementedError�_source)rr"�address�port�source�source_port�managerrrr	rZs$
zBaseQuicConnection.__init__cCs|j|=dSr)r9)rr#rrr	r1rszBaseQuicConnection.close_streamTcCsLt��}|j��}|dur|d}t||d�}|jr"|r"t|d�}||fS)Nirg�������?)r%r�	get_timerr)r7�min)r�closed_is_special�nowr'�intervalrrr	�_get_timer_valuesus


z$BaseQuicConnection._get_timer_valuescCs$t��}||kr|j�|�dSdSr)r%r�handle_timer)rr'rMrrr	�
_handle_timer�s�z BaseQuicConnection._handle_timer)NrN)T)rrrrr1rOrQrrrr	r3Ys
�

r3c@s$eZdZddeedefdd�ZdS)�AsyncQuicConnectionNr&�returnc�s�dSrr)rr&rrr	�make_stream�s�zAsyncQuicConnection.make_streamr)rrrr�floatrrTrrrr	rR�srRc@s(eZdZd
dd�Zddd�Zdd	�ZdS)�BaseQuicManagerNcCs^i|_||_|dur*d}t|t�r|}d}tjjjddg||d�}|dur*|�|�||_	dS)NT�doqzdoq-i03)�alpn_protocols�verify_mode�server_name)
�_connections�_connection_factory�
isinstance�str�aioquic�quic�
configuration�QuicConfiguration�load_verify_locations�_conf)r�confrY�connection_factoryrZ�verify_pathrrr	r�s
�

zBaseQuicManager.__init__�UrcCsl|j�||f�}|dur|dfStjjj|jd�}|�|t���|�	||||||�}||j||f<|dfS)NF)raT)
r[rr_r`r"�QuicConnectionrd�connectr%r\)rrErFrGrHr"�qconnrrr	�_connect�s�zBaseQuicManager._connectcCs(z	|j||f=WdStyYdSwr)r[�KeyError)rrErFrrr	�closed�s
�zBaseQuicManager.closedr�rhNr)rrrrrlrnrrrr	rV�s

rVc@seZdZddd�ZdS)�AsyncQuicManagerrhNrcCst�r)rC)rrErFrGrHrrr	rj�szAsyncQuicManager.connectro)rrrrjrrrr	rp�srp)r@r+r%�typingrr�aioquic.quic.configurationr_�aioquic.quic.connection�dns.inetr:�QUIC_MAX_DATAGRAM�	Exceptionrr
rr3rRrVrprrrr	�<module>s(/%