Viewing File: /opt/hc_python/lib/python3.12/site-packages/dns/quic/__pycache__/_asyncio.cpython-312.pyc

�

`��g�&���ddlZddlZddlZddlZddlZddlZddlZddlZddl	Z
ddlZ
ddlZ
ddl
mZmZmZmZmZGd�de�ZGd�de�ZGd�de�Zy)	�N)�QUIC_MAX_DATAGRAM�AsyncQuicConnection�AsyncQuicManager�BaseQuicStream�
UnexpectedEOFc�X��eZdZ�fd�Zd�Zd�Zd�Zdd�Zdd�Zd�Z	d�Z
d	�Zd
�Z�xZ
S)
�AsyncioQuicStreamc�X��t�|�||�tj�|_y�N)�super�__init__�asyncio�	Condition�_wake_up)�self�
connection�	stream_id�	__class__s   ��@/opt/hc_python/lib/python3.12/site-packages/dns/quic/_asyncio.pyr
zAsyncioQuicStream.__init__s"���
����Y�/��)�)�+��
�c���K�|j4�d{���|jj��d{���ddd��d{���y7�77�7�	#1�d{���7swYyxYw�wr)r�wait�rs r�_wait_for_wake_upz#AsyncioQuicStream._wait_for_wake_ups?�����=�=�=��-�-�$�$�&�&�&�!�=�=��&��!��=�=�=�sS�A&�A�A&�A�A
�A�A&�A�A&�
A�A&�A#�A�A#�A&c��0K�	|j|�}|jj|�ry||_	t	j
|j
�|��d{���d|_�i7�#t$rtjj�wxYw�w)Nr)�_timeout_from_expiration�_buffer�have�
_expectingr�wait_forr�TimeoutError�dns�	exception�Timeout)r�amount�
expiration�timeouts    rr zAsyncioQuicStream.wait_for"s�������3�3�J�?�G��|�|� � ��(��$�D�O�
,��&�&�t�'=�'=�'?��I�I�I� �D�O��J���
,��m�m�+�+�+�
,�s.�6B�'A/� A-�!A/�%B�-A/�/$B�Bc��K�	|j|�}|jj�ry	tj|j�|��d{����Z7�#t$rtjj�wxYw�wr)
rr�seen_endrr rr!r"r#r$)rr&r's   r�wait_for_endzAsyncioQuicStream.wait_for_end.sy������3�3�J�?�G��|�|�$�$�&��
,��&�&�t�'=�'=�'?��I�I�I��
J���
,��m�m�+�+�+�
,�s.�.B�'A �A�A �B�A � $B�Bc���K�|j|�}|jj�r3|j|��d{���|jj�S|j
d|��d{���tjd|jjd��\}|j
||��d{���|jj|�S7��7�l7�#�w)N�z!H)
�_expiration_from_timeout�_connection�is_h3r*r�get_allr �struct�unpack�get)rr'r&�sizes    r�receivezAsyncioQuicStream.receive8s������2�2�7�;�
����!�!�#��#�#�J�/�/�/��<�<�'�'�)�)��-�-��:�.�.�.��m�m�D�$�,�,�*:�*:�1�*=�>�G�T��-�-��j�1�1�1��<�<�#�#�D�)�)�

0��
/��1�s7�AC'�C!�3C'�6C#�7A
C'�C%� C'�#C'�%C'c��K�|j|�}|jj|j||��d{���y7��wr)�_encapsulater.�write�
_stream_id)r�datagram�is_end�datas    r�sendzAsyncioQuicStream.sendCs8����� � ��*�����$�$�T�_�_�d�F�C�C�C�s�<A�A�Ac���K�|j||�r@|j4�d{���|jj�ddd��d{���yy7�07�#1�d{���7swYyxYw�wr)�_common_add_inputr�notify)rr<r;s   r�
_add_inputzAsyncioQuicStream._add_inputGsJ�����!�!�$��/��}�}�}��
�
�$�$�&�%�}�}�0�$��}��}�}�}�sD�#A/�A�A/�A�A/�A�A/�A/�A,� A#�!A,�(A/c��,K�|j�y�wr)�_closers r�closezAsyncioQuicStream.closeLs�������
�s�c��K�|S�wr�rs r�
__aenter__zAsyncioQuicStream.__aenter__Q���������c���K�|j��d{���|j4�d{���|jj�ddd��d{���y7�D7�17�	#1�d{���7swYyxYw�w�NF)rDrr@)r�exc_type�exc_val�exc_tbs    r�	__aexit__zAsyncioQuicStream.__aexit__TsN�����j�j�l����=�=�=��M�M� � �"�!�=��	�� ��=��=�=�=��sT�A6�A�A6�A�A6�A!�
A6�A�A6�A6�A6�!A3�'A*�(A3�/A6r�F)�__name__�
__module__�__qualname__r
rr r*r5r=rArDrGrO�
__classcell__�rs@rr	r	s6���,�'�
 �,�	*�D�'�
�
�rr	c�Z��eZdZd�fd�	Zd�Zd�Zd�Zd�Zd�Zdd�Z	d�Z
dd	�Zd
�Z�xZ
S)
�AsyncioQuicConnectionc���t�|�||||||�d|_tj�|_tj�|_tj�|_d|_	d|_
d|_yrK)rr
�_socketr�Event�_handshake_complete�_socket_createdr�_wake_timer�_receiver_task�_sender_task�
_wake_pending)rr�address�port�source�source_port�managerrs       �rr
zAsyncioQuicConnection.__init__\sf���
����W�d�F�K��Q����#*�=�=�?�� �&�}�}����"�,�,�.���"��� ���"��rc	��K�	tjj|j�}tjjd�}|j
|tjd|j|jd|jdf��d{���|_|jj�|j4�d{���|js�|jjt d��d{���\}}|d|jdk7s|d|jdk7r�b|j"j%||t'j&��|j)��d{���|js��ddd��d{���d|_|j)��d{���|j,j�y7��97��7��7�c7�H#1�d{���7swY�XxYw#t*$rY�fwxYw7�O#d|_|j)��d{���7|j,j�wxYw�w)Nrr�T)r"�inet�af_for_address�_address�asyncbackend�get_backend�make_socket�socket�
SOCK_DGRAM�_source�_peerrYr\�set�_done�recvfromrr.�receive_datagram�time�_wakeup�	Exceptionr[)r�af�backendr:ras     r�	_receiverzAsyncioQuicConnection._receiverfs�����	+����(�(����7�B��&�&�2�2�9�=�G�")�!4�!4��F�%�%�q�$�,�,����A���
�
�ST�
�8V�"��D�L�
� � �$�$�&��|�|�|��*�*�04���0E�0E�)�4�1�+�'�X�w��q�z�T�Z�Z��]�2�g�a�j�D�J�J�q�M�6Q� ��$�$�5�5�h������U��,�,�.�(�(��*�*�$�|��D�J��,�,�.� � ��$�$�(�(�*�)��$��+��)��$��|�|�|���	��	��
!���D�J��,�,�.� � ��$�$�(�(�*�s��I�BG2�G�3G2�G�
G2�0G�G�A4G�5G�6G�G2�G�G2�I�1H�2I�G2�G2�G�G�G2�G/�#G&�$G/�+G2�2	G>�;H�=G>�>H�I�H?�H!� H?�?Ic���K�d|_|j4�d{���|jj�ddd��d{���y7�/7�#1�d{���7swYyxYw�w)NT)r`r]�
notify_allrs rrwzAsyncioQuicConnection._wakeup�sE����!����#�#�#����'�'�)�$�#�#��#��#�#�#�sC�A#�A
�A#�A�A#�A�A#�A#�A �A�A �A#c��K�|j4�d{���|js"|jj��d{���ddd��d{���d|_y7�J7�7�#1�d{���7swYd|_yxYw�wrK)r]r`rrs r�_wait_for_wake_timerz*AsyncioQuicConnection._wait_for_wake_timer�sh�����#�#�#��%�%��&�&�+�+�-�-�-�$�#�#���$��-��$��#�#�#�#���sV�B�A�B�*A$�A �A$�B�A"�
B� A$�"B�$A=�*A-�+A=�2Bc��rK�|jj��d{���|js�|jj	tj
��}|D]E\}}||jk(sJ�|jj||jd��d{����G|j�\}}	tj|j�|��d{���|j|�|j��d{���|js��yy7��7��7�@#t$rY�IwxYw7�(�wr)r\rrsr.�datagrams_to_sendrvrqrY�sendto�_get_timer_valuesrr rrx�
_handle_timer�_handle_events)r�	datagramsr:rar&�intervals      r�_senderzAsyncioQuicConnection._sender�s�����"�"�'�'�)�)�)��*�*��(�(�:�:�4�9�9�;�G�I�%.�!��'��$�*�*�,�,�,��l�l�)�)�(�D�J�J��E�E�E�&/�&*�%;�%;�%=�"�Z��
��&�&�t�'@�'@�'B�H�M�M�M�
���z�*��%�%�'�'�'��*�*�	*��
F��N���
��
��
(�sj�D7�D �BD7�!D"�"D7�<'D&�#D$�$D&�($D7�D5�
D7�D7�"D7�$D&�&	D2�/D7�1D2�2D7c���K�d}	|jj�}|�yt|tjj
j��r�|j��re|jj|�}|D�]B}t|tjj
j�r�|jj|j�}|s�Z|j�|j |_n|j"�|j |_|j$s��|j'dd��d{�����t|tjj
j(�s��|jj|j�}|s��|j'|j*|j$��d{�����E�n`|jj|j�}|�r8|j'|j*|j,��d{����nt|tjj
j.�r|j0j3�n�t|tjj
j4�r"d|_|j8j;�not|tjj
j<�rA|jj|j�}|r|j'dd��d{���|dz
}|dkDrd}t?j@d��d{�����M7��7���7��@7�87��w)NrTrrg�
)!r.�
next_event�
isinstance�aioquic�quic�events�StreamDataReceivedr/�_h3_conn�handle_event�h3�HeadersReceived�_streamsr3r�_headers�headers�	_trailers�stream_endedrA�DataReceivedr<�
end_stream�HandshakeCompletedr[rr�ConnectionTerminatedrsr^�cancel�StreamResetr�sleep)r�count�event�	h3_events�h3_event�streams      rr�z$AsyncioQuicConnection._handle_events�s��������$�$�/�/�1�E��}���%����!4�!4�!G�!G�H��:�:�<� $�
�
� :� :�5� A�I�$-��%�h��
�
�0A�0A�0Q�0Q�R�%)�]�]�%6�%6�u���%G�F�%�#)�?�?�#:�6>�6F�6F�F�O�%+�%5�%5�%=�7?�7G�7G�F�$4�#+�#8�#8�*0�*;�*;�C��*F�$F�$F�'��'�*�*�2C�2C�2P�2P�Q�%)�]�]�%6�%6�u���%G�F�%�&,�&7�&7�$,�M�M�8�3H�3H�'"�!"�!"�%.�""�]�]�.�.�u���?�F��$�/�/��
�
�E�<L�<L�M�M�M��E�7�<�<�#6�#6�#I�#I�J��(�(�,�,�.��E�7�<�<�#6�#6�#K�#K�L�!��
��#�#�*�*�,��E�7�<�<�#6�#6�#B�#B�C����*�*�5�?�?�;��� �+�+�C��6�6�6��Q�J�E��r�z����m�m�A�&�&�&�S� %G��!"��N��7��'�su�CM �AM �"M �7M�83M �,'M �)M �>M�?AM �M�D	M �#M�$(M �M�
M �M �M �M �M c��zK�|jj|||�|j��d{���y7��wr)r.�send_stream_datarw)rr�r<r;s    rr8zAsyncioQuicConnection.write�s-�������)�)�&�$��?��l�l�n���s�1;�9�;c��|jrytj|j��|_tj|j��|_yr)�_closedr�Taskr{r^r�r_rs r�runzAsyncioQuicConnection.run�s;���<�<��%�l�l�4�>�>�+;�<���#�L�L�����8��rc��^K�	tj|jj�|��d{���|jrt�|jjd�}t||�}||j|<|S7�N#t$rt
jj�wxYw�wrK)rr r[rr!r"r#r$rsrr.�get_next_available_stream_idr	r�)rr'rr�s    r�make_streamz!AsyncioQuicConnection.make_stream�s�����	(��"�"�4�#;�#;�#@�#@�#B�G�L�L�L��:�:����$�$�A�A�%�H�	�"�4��3��#)��
�
�i� ��
�
M���	(��-�-�'�'�'�	(�s,�B-�1B�B�B�A
B-�B�$B*�*B-c��DK�|js�|jj|jd|jd�d|_|jj�|jj�|j��d{���	|j�d{���	|j�d{���|jj��d{���yy7�R7�?#tj$rY�RwxYw7�E#tj$rY�XwxYw7�>�w)NrrgT)r��_manager�closedrqr.rDr\rrrwr^r�CancelledErrorr_rYrs rrDzAsyncioQuicConnection.close�s������|�|��M�M� � ����A���
�
�1�
�>��D�L����"�"�$�� � �$�$�&��,�,�.� � �
��)�)�)�)�
��'�'�'�'��,�,�$�$�&�&�&��
!��)���)�)�
��
��(���)�)�
��
��&�s��BD �C&�D �C*�(C(�)C*�.D�=D�>D�D �D� D �(C*�*D�=D �?D�D �D�D�D �D�D rrP)rQrRrSr
r{rwrr�r�r8r�r�rDrTrUs@rrWrW[s6���#�+�8*�
#�
(�+'�Z�9�
�'rrWc�R��eZdZdejddf�fd�	Z	dd�Zd�Zd�Z�xZ	S)�AsyncioQuicManagerNFc�4��t�|�||t||�yr)rr
rW)r�conf�verify_mode�server_namer�rs     �rr
zAsyncioQuicManager.__init__�s���	����{�,A�;�PR�Src�Z�|j|||||�\}}|r|j�|Sr)�_connectr�)rrarbrcrd�want_session_ticketr�starts        r�connectzAsyncioQuicManager.connect�s8��#�m�m��T�6�;�0C�
���U���N�N���rc��K�|S�wrrFrs rrGzAsyncioQuicManager.__aenter__rHrIc��K�t|jj��}|D]}|j��d{����y7��wrK)�list�_connections�valuesrD)rrLrMrN�connectionsrs      rrOzAsyncioQuicManager.__aexit__sE�����4�,�,�3�3�5�6��%�J��"�"�$�$�$�&��
%�s�<A�A�A)iUNrT)
rQrRrS�ssl�
CERT_REQUIREDr
r�rGrOrTrUs@rr�r��s.����S�%6�%6�D�U�T�RV���rr�)rrnr�r1rv�aioquic.quic.configurationr��aioquic.quic.connection�aioquic.quic.events�dns.asyncbackendr"�
dns.exception�dns.inet�dns.quic._commonrrrrrr	rWr�rFrr�<module>r�s\���
�
�
��!��������?��?�DT'�/�T'�n�)�r
Back to Directory File Manager