관리-도구
편집 파일: _common.cpython-39.opt-1.pyc
a �����M�er����������������������@���s����d�dl�Z�d�dlZd�dlZd�dlZd�dlZd�dlmZmZ�d�dlZ d�dl Z d�dlZdZ dZed�ZG�dd��de�ZG�dd ��d �ZG�d d��d�ZG�dd ��d �ZG�dd��de�ZG�dd��d�ZG�dd��de�ZdS�)�����N)�Any�Optionali�����������c�������������������@���s���e�Zd�ZdS�)� UnexpectedEOFN)�__name__� __module__�__qualname__��r ���r ����4/usr/lib/python3.9/site-packages/dns/quic/_common.pyr������s���r���c�������������������@���s4���e�Zd�Zdd��Zdd��Zdd��Zdd��Zd d ��ZdS�)�Bufferc�����������������C���s���d|�_�d|�_d�S�)N�����F)�_buffer� _seen_end��selfr ���r ���r����__init__���s����zBuffer.__init__c�����������������C���s&���|�j�r d�S�|��j|7��_|r"d|�_�d�S�)NT)r���r����r����dataZis_endr ���r ���r����put���s ����z Buffer.putc�����������������C���s ���t�|�j�|krdS�|�jrt�dS�)NTF)�lenr���r���r���)r����amountr ���r ���r����have&���s ����zBuffer.havec�����������������C���s���|�j�S��N)r���r���r ���r ���r����seen_end-���s����zBuffer.seen_endc�����������������C���s"���|�j�d�|��}|�j�|d���|�_�|S�r���)r���)r���r���r���r ���r ���r����get0���s����z Buffer.getN)r���r���r ���r���r���r���r���r���r ���r ���r ���r���r������s ���r���c�������������������@���sD���e�Zd�Zdd��Zdd��Zdd��Zdd��Zd d ��Zdd��Zd d��Z dS�)�BaseQuicStreamc�����������������C���s���||�_�||�_t��|�_d|�_d�S��Nr���)�_connection� _stream_idr���r���� _expecting)r���� connection� stream_idr ���r ���r���r���8���s����zBaseQuicStream.__init__c�����������������C���s���|�j�S�r���)r���r���r ���r ���r����id>���s����zBaseQuicStream.idc�����������������C���s���|d�urt�����|�}nd�}|S�r���)�time)r����timeout� expirationr ���r ���r����_expiration_from_timeoutA���s����z'BaseQuicStream._expiration_from_timeoutc�����������������C���s$���|d�urt�|t����d�}nd�}|S�)Ng��������)�maxr$���)r���r&���r%���r ���r ���r����_timeout_from_expirationH���s����z'BaseQuicStream._timeout_from_expirationc�����������������C���s���t�|�}t�d|�|�S�)Nz!H)r����struct�pack)r���Zdatagram�lr ���r ���r����_encapsulateR���s����zBaseQuicStream._encapsulatec�����������������C���sB���|�j��||��z|�jdko&|�j��|�j�W�S��ty<���Y�dS�0�d�S�)Nr���T)r���r���r ���r���r���r���r ���r ���r����_common_add_inputV���s ����z BaseQuicStream._common_add_inputc�����������������C���s ���|�j��|�j��|�j�dd��d�S�)Nr ���T)r����close_streamr���r���r���r���r ���r ���r����_close]���s����zBaseQuicStream._closeN) r���r���r ���r���r#���r'���r)���r-���r.���r0���r ���r ���r ���r���r���7���s��� r���c�������������������@���s0���e�Zd�Zddd�Zdd��Zd dd �Zd d��ZdS�)�BaseQuicConnectionNr���c�����������������C���s����d|�_�||�_||�_||�_d|�_||�_i�|�_tj� |�|�_ tj�||f�|�_|d�u�r�|dkr�|�j t jkrld}n|�j t jkr~d}nt�|r�||f|�_nd�|�_d�S�)NFr���z0.0.0.0z::)Z_doner���Z_addressZ_port�_closedZ_manager�_streams�dns�inetZaf_for_addressZ_af�low_level_address_tupleZ_peer�socketZAF_INETZAF_INET6�NotImplementedError�_source)r���r!����address�port�source�source_portZmanagerr ���r ���r���r���c���s$����zBaseQuicConnection.__init__c�����������������C���s���|�j�|=�d�S�r���)r3���)r���r"���r ���r ���r���r/���{���s����zBaseQuicConnection.close_streamTc�����������������C���sL���t�����}|�j���}|d�u�r"|d�}t||�d�}|�jrD|rDt|d�}||fS�)Ni��r���g�������?)r$���r���Z get_timerr(���r2����min)r���Zclosed_is_special�nowr&����intervalr ���r ���r����_get_timer_values~���s���� z$BaseQuicConnection._get_timer_valuesc�����������������C���s ���t�����}||kr|�j�|��d�S�r���)r$���r���Zhandle_timer)r���r&���r?���r ���r ���r���� _handle_timer����s����z BaseQuicConnection._handle_timer)Nr���N)T)r���r���r ���r���r/���rA���rB���r ���r ���r ���r���r1���b���s ����� r1���c�������������������@���s"���e�Zd�Zdee�ed�dd�ZdS�)�AsyncQuicConnectionN)r%����returnc���������������������s���d�S�r���r ���)r���r%���r ���r ���r����make_stream����s����zAsyncQuicConnection.make_stream)N)r���r���r ���r����floatr���rE���r ���r ���r ���r���rC�������s���rC���c�������������������@���s0���e�Zd�Zd dd�Zddd�Zd d ��Zdd��ZdS�)�BaseQuicManagerNc�����������������C���sd���i�|�_�||�_i�|�_|d�u�rZd�}t|t�r0|}d}tjjjddg||d�}|d�urZ|� |��||�_ d�S�)NTZdoqzdoq-i03)Zalpn_protocols�verify_mode�server_name)�_connections�_connection_factory�_session_tickets� isinstance�str�aioquic�quic� configurationZQuicConfigurationZload_verify_locations�_conf)r����confrH���Zconnection_factoryrI���Zverify_pathr ���r ���r���r�������s ���� � zBaseQuicManager.__init__�U��r���Tc�����������������C���s����|�j��||f�}|d�ur |dfS�|�j}|rtz$|�j�||f�}t�|�}||_W�n�ty`���Y�n0�t� |�j ||�} nd�} tjj j|| d�} tj�||f�}| �|t�����|��| |||||��}||�j�||f<�|dfS�)NF)rQ����session_ticket_handlerT)rJ���r���rR���rL����pop�copy�session_ticket�KeyError� functools�partial�save_session_ticketrO���rP���r!���ZQuicConnectionr4���r5���r6����connectr$���rK���)r���r:���r;���r<���r=���Zwant_session_ticketr!���rS���rX���rU���ZqconnZ lladdressr ���r ���r����_connect����s4���� ���zBaseQuicManager._connectc�����������������C���s(���z|�j�||f=�W�n�ty"���Y�n0�d�S�r���)rJ���rY���)r���r:���r;���r ���r ���r����closed����s����zBaseQuicManager.closedc�����������������C���sL���t�|�j�}|tkr:t|�j����dt��}|D�]}|�j|=�q,||�j||f<�d�S�r���)r���rL����MAX_SESSION_TICKETS�list�keys�SESSIONS_TO_DELETE)r���r:���r;���Zticketr,���Zkeys_to_delete�keyr ���r ���r���r\�������s���� z#BaseQuicManager.save_session_ticket)N)rT���Nr���T)r���r���r ���r���r^���r_���r\���r ���r ���r ���r���rG�������s ��� �� #rG���c�������������������@���s���e�Zd�Zddd�ZdS�)�AsyncQuicManagerrT���Nr���c�����������������C���s���t��d�S�r���)r8���)r���r:���r;���r<���r=���r ���r ���r���r]�������s����zAsyncQuicManager.connect)rT���Nr���)r���r���r ���r]���r ���r ���r ���r���re�������s���re���)rW���rZ���r7���r*���r$����typingr���r���Zaioquic.quic.configurationrO���Zaioquic.quic.connectionZdns.inetr4���ZQUIC_MAX_DATAGRAMr`���rc���� Exceptionr���r���r���r1���rC���rG���re���r ���r ���r ���r����<module>���s$���+/H