Viewing File: /opt/hc_python/lib/python3.12/site-packages/dns/quic/__pycache__/_sync.cpython-312.pyc
�
`��g�( � �� � d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl Zd dl
Zd dlZd dl
mZmZmZmZmZ ej Z G d� de� Z G d� de� Z G d� de� Zy) � N)�QUIC_MAX_DATAGRAM�BaseQuicConnection�BaseQuicManager�BaseQuicStream�
UnexpectedEOFc �R � � e Zd Z� fd�Zd� Zd� Zd
d�Zdd�Zd� Zd� Z d� Z
d � Z� xZS )�SyncQuicStreamc � �� t �| � ||� t j � | _ t j
� | _ y �N)�super�__init__� threading� Condition�_wake_up�Lock�_lock)�self�
connection� stream_id� __class__s ��=/opt/hc_python/lib/python3.12/site-packages/dns/quic/_sync.pyr
zSyncQuicStream.__init__ s0 �� �
����Y�/�!�+�+�-��
��^�^�%��
� c �~ � | j |� }| j 5 | j j |� r
d d d � y || _ d d d � | j
5 | j
j
|� st j j � d d d � d| _ ��# 1 sw Y �\xY w# 1 sw Y �xY w)Nr )
�_timeout_from_expirationr �_buffer�have�
_expectingr �wait�dns� exception�Timeout)r �amount�
expiration�timeouts r �wait_forzSyncQuicStream.wait_for# s� � ���3�3�J�?�G�����<�<�$�$�V�,�� �� #)��� � ����}�}�)�)�'�2��-�-�/�/�/� 3� � �D�O� ���� ��s �B'�B'� 6B3�'B0�3B<c �b � | j |� }| j 5 | j j � r
d d d � y d d d � | j 5 | j j |� st j j � d d d � ��# 1 sw Y �UxY w# 1 sw Y �xY wr ) r r r �seen_endr r r r r! )r r# r$ s r �wait_for_endzSyncQuicStream.wait_for_end/ s� � ���3�3�J�?�G�����<�<�(�(�*�� ��*� � ����}�}�)�)�'�2��-�-�/�/�/� 3� � ���� ��s �B�6B%�B"�%B.c �X � | j |� }| j j � rA| j |� | j 5 | j
j
� cd d d � S | j d|� | j 5 t j d| j
j d� � \ }d d d � | j |� | j 5 | j
j |� cd d d � S # 1 sw Y y xY w# 1 sw Y �XxY w# 1 sw Y y xY w)N� z!H)�_expiration_from_timeout�_connection�is_h3r( r r �get_allr% �struct�unpack�get)r r$ r# �sizes r �receivezSyncQuicStream.receive9 s� � ��2�2�7�;�
����!�!�#����j�)�����|�|�+�+�-� ��
�M�M�!�Z�(���� �-�-��d�l�l�.>�.>�q�.A�B��� ��M�M�$�
�+�����|�|�'�'��-� �� ��� ��� ��s$ � D�2D�#D �D�D� D)c �t � | j |� }| j j | j ||� y r )�_encapsulater, �write�
_stream_id)r �datagram�is_end�datas r �sendzSyncQuicStream.sendG s. � �� � ��*�������t����f�=r c � � | j ||� r0| j 5 | j j � d d d � y y # 1 sw Y y xY wr )�_common_add_inputr �notify)r r: r9 s r �
_add_inputzSyncQuicStream._add_inputK s; � ��!�!�$��/�����
�
�$�$�&� �� 0���s �A�A
c �f � | j 5 | j � d d d � y # 1 sw Y y xY wr )r �_close�r s r �closezSyncQuicStream.closeP s � �
�Z�Z��K�K�M� �Z�Z�s �'�0c � � | S r � rB s r � __enter__zSyncQuicStream.__enter__T � � ��r c � � | j � | j 5 | j j � d d d � y# 1 sw Y yxY w�NF)rC r r>