OwlCyberSecurity - MANAGER
Edit File: connection.cpython-312.pyc
� ����W��g|1��������������������������d�dl�mZ�d�dlZd�dlZd�dlZd�dlZd�dlZd�dlZd�dl Zd�dl ZddlmZ�ddl mZ�ddlmZmZ�ddlmZ�ddlmZ�eZ�ej.������������������d �������Z�ej2������������������e�������Z�ej8������������������d �������Z�ej8������������������d�������Zdd�Zdd �Z �G�d��dejB������������������e����������Z"�G�d��de�������Z#�G�d��de�������Z$y)�����)�annotationsN����)� _TYPE_BODY)�HTTPHeaderDict)�HTTPSConnection�_get_default_user_agent)�ConnectionError)�BaseHTTPResponse�Ts���^[!#$%&'*+\-.^_`|~0-9a-z]+$s*���[\0\x00\x0a\x0d\r\n]|^[ \r\n\t]|[ \r\n\t]$c�����������������>�����t��������t��������j������������������|���������������S�)a5�� "An implementation that validates fields according to the definitions in Sections 5.1 and 5.5 of [HTTP] only needs an additional check that field names do not include uppercase characters." (https://httpwg.org/specs/rfc9113.html#n-field-validity) `http.client._is_legal_header_name` does not validate the field name according to the HTTP 1.1 spec, so we do that here, in addition to checking for uppercase characters. This does not allow for the `:` character in the header name, so should not be used to validate pseudo-headers. )�bool�RE_IS_LEGAL_HEADER_NAME�match)�names��� �G/opt/hc_python/lib/python3.12/site-packages/urllib3/http2/connection.py�_is_legal_header_namer������s��������'�-�-�d�3�4�4�����c�����������������>�����t��������t��������j������������������|���������������S�)aK�� "A field value MUST NOT contain the zero value (ASCII NUL, 0x00), line feed (ASCII LF, 0x0a), or carriage return (ASCII CR, 0x0d) at any position. A field value MUST NOT start or end with an ASCII whitespace character (ASCII SP or HTAB, 0x20 or 0x09)." (https://httpwg.org/specs/rfc9113.html#n-field-validity) )r ����RE_IS_ILLEGAL_HEADER_VALUE�search)�values��� r����_is_illegal_header_valuer���,���s��������*�1�1�%�8�9�9r���c�������������������<�����e�Zd�ZdZdZdd�Zdd�Z � � � � � � � �d d�Zy) � _LockedObjectaX�� A wrapper class that hides a specific object behind a lock. The goal here is to provide a simple way to protect access to an object that cannot safely be simultaneously accessed from multiple threads. The intended use of this class is simple: take hold of it with a context manager, which returns the protected object. )�lock�_objc�����������������D�����t��������j��������������������������|�_��������||�_��������y��N)� threading�RLockr���r���)�self�objs��� r����__init__z_LockedObject.__init__D���s�������O�O�%�� ��� r���c�����������������N�����|�j�������������������j���������������������������|�j������������������S�r���)r����acquirer����r!���s��� r���� __enter__z_LockedObject.__enter__H���s������� � �����y�y�r���c�����������������8�����|�j�������������������j���������������������������y�r���)r����release)r!����exc_type�exc_val�exc_tbs��� r����__exit__z_LockedObject.__exit__L���s������� � � ���r���N)r"���r���)�returnr���)r*���ztype[BaseException] | Noner+���zBaseException | Noner,���ztypes.TracebackType | Noner.����None)�__name__� __module__�__qualname__�__doc__� __slots__r#���r'���r-�����r���r���r���r���6���sC��������I� ���,���&���+� � � �r���r���c���������������������������e�Zd�Z �d � � � � � � �d��fd� Zdd�Zd��fd�Z � � � � � � � �dd�Zdd�Zddd�Zdd�Z � � �d � � � � � � � � �dd�Z � �dd �Z � �dd d d d� � � � � � � � � � � � � � � � � �dd�Zd��fd �Z ��xZS�)�HTTP2Connectionc������������������������|�j��������������������������|�_��������d�|�_��������g�|�_��������d|v�sd|v�rt ��������d��������t���������|����||fi�|���|�j�������������������t ��������d��������y�)N�proxy�proxy_configz$Proxies aren't supported with HTTP/2z%Tunneling isn't supported with HTTP/2)�_new_h2_conn�_h2_conn� _h2_stream�_headers�NotImplementedError�superr#����_tunnel_host)r!����host�port�kwargs� __class__s��� �r���r#���zHTTP2Connection.__init__V���so���������)�)�+�� �&*���35�� ��f���&� 8�%�&L�M�M� ����t�.�v�.����(�%�&M�N�N��)r���c����������������������t���������j������������������j������������������d��������}t��������t���������j������������������j������������������|���������������S�)NT)�client_side)�config)�h2rH����H2Configurationr���� connection�H2Connection)r!���rH���s��� r���r;���zHTTP2Connection._new_h2_conne���s6���������*�*�t�*�<���R�]�]�7�7�v�7�F�G�Gr���c������������������������t����������|�������������|�j������������������5�}|j���������������������������|j ��������������������������x}r|�j ������������������j ������������������|��������d�d�d���������y�#�1�sw�Y���y�xY�wr���)r@����connectr<����initiate_connection�data_to_send�sock�sendall)r!����connrP���rE���s��� �r���rN���zHTTP2Connection.connecti���sR������� ���� �]�]�d��$�$�&�#�0�0�2�2�|�2�� � �!�!�,�/���]�]�s����>A#�#A,c���������������������d|v�rt��������d��������d|v�rt��������d��������|xs�d|�_��������|�j������������������|��������d|�j������������������v�r!d|�j��������������������d|�j������������������xs�d ���}n|�j��������������������d|�j������������������xs�d ���}|�j ������������������j ������������������d ��������|�j ������������������j ������������������d|j��������������������������f��������|�j ������������������j ������������������d|j��������������������������f��������|�j ������������������j ������������������d |j��������������������������f��������|�j������������������5�}|j��������������������������|�_ ��������ddd��������y#�1�sw�Y���yxY�w)z�putrequest This deviates from the HTTPConnection method signature since we never need to override sending accept-encoding headers or the host header. � skip_hostz`skip_host` isn't supported�skip_accept_encodingz&`skip_accept_encoding` isn't supported�/�:�[z]:i���)s���:schemes���httpss���:methods ���:authoritys���:pathN)r?����_request_url�_validate_pathrB���rC���r>����append�encoder<����get_next_available_stream_idr=���)r!����method�urlrD���� authorityrS���s��� r���� putrequestzHTTP2Connection.putrequestp���s �������&� �%�&C�D�D�!�V�+�%�&N�O�O��J�3������C� ��$�)�)���D�I�I�;�b����)9�c�(:�;�I��9�9�+�Q�t�y�y�'7�C�&8�9�I�� � ���3�4�� � ���j�&�-�-�/�:�;�� � ���m�Y�-=�-=�-?�@�A�� � ���h�� � ��5�6� �]�]�d�"�?�?�A�D�O���]�]�s����1E�Ec�����������������|����t��������|t���������������r|j��������������������������n|}|j��������������������������}t ��������|�������st��������dt��������|������������������|D�]c��}t��������|t���������������r|j��������������������������n|}t ��������|�������rt��������dt��������|������������������|�j������������������j������������������||f���������e�y�)NzIllegal header name zIllegal header value ) � isinstance�strr]����lowerr���� ValueErrorr���r>���r\���)r!����header�valuesr���s��� r���� putheaderzHTTP2Connection.putheader����s�������$.�v�s�$;������������$�V�,��3�C��K�=�A�B�B��E�&0���&<�E�L�L�N�%�E�'��.� �#8��U���!E�F�F��M�M� � �&�%��1� �r���c�����������������>����|�j��������������������t��������d��������|�j������������������5�}|j������������������|�j�������������������|�j������������������|d�u����������|j��������������������������x}r|�j������������������j������������������|��������d�d�d���������g�|�_��������y�#�1�sw�Y���g�|�_��������y�xY�w)N�Must call `putrequest` first.)� stream_id�headers� end_stream)r=���r ���r<����send_headersr>���rP���rQ���rR���)r!����message_bodyrS���rP���s��� r���� endheaderszHTTP2Connection.endheaders����s��������?�?�"�!�"A�B�B� �]�]�d�����/�/�� � �(�D�0�� �� � � $�0�0�2�2�|�2�� � �!�!�,�/������ ������ �s����AB�Bc�����������������d����|�j��������������������t��������d��������|�j������������������5�}|j��������������������������x}r|�j������������������j������������������|��������t ��������|d�������r� �|j������������������|�j�������������������������}|snlt��������|t���������������r|j��������������������������}|j������������������|�j�������������������|d���������|j��������������������������x}r|�j������������������j������������������|����������|j������������������|�j��������������������������� �ddd��������yt��������|t���������������r|j��������������������������} �t��������|t���������������rL|j������������������|�j�������������������|d���������|j��������������������������x}r�|�j������������������j������������������|��������nn|D�]N��}|j������������������|�j�������������������|d���������|j��������������������������x}s�4|�j������������������j������������������|���������P�|j������������������|�j���������������������������ddd��������y#�t��������$�r�t��������dt!��������|�������z����������w�xY�w#�1�sw�Y���yxY�w)z�Send data to the server. `data` can be: `str`, `bytes`, an iterable, or file-like objects that support a .read() method. Nrl����readTF)ro���z6`data` should be str, bytes, iterable, or file. got %r)r=���r ���r<���rP���rQ���rR����hasattrrt���� blocksizerd���re���r]���� send_dataro����bytes� TypeError�type)r!����datarS���rP����chunks��� r����sendzHTTP2Connection.send����s������ ��?�?�"�!�"A�B�B� �]�]�d�#�0�0�2�2�|�2�� � �!�!�,�/��t�V�$�� �I�I�d�n�n�5�E� ��!�%��-� %������N�N�4�?�?�E�e�N�L�'+�'8�'8�':�:�|�:�� � �)�)�,�7����������0����]�"��$��$��{�{�}�� ��d�E�*��N�N�4�?�?�D�T�N�J�'+�'8�'8�':�:�|�:�� � �)�)�,�7�!%�����t����%��P�+/�+<�+<�+>�>�<�>� �I�I�-�-�l�;��"&���O�O�D�O�O�4�=��]��>��� ��L��4�j�!���� ��?��]�s+����C!H&� H&�/BH�8H�!H#�#H&�&H/c����������������������t��������d��������)Nz;HTTP/2 does not support setting up a tunnel through a proxy)r?���)r!���rB���rC���rn����schemes��� r���� set_tunnelzHTTP2Connection.set_tunnel����s�������"�I� �� r���c����������� ����������d�}t����������������}|�j������������������5�}d}|�s}|�j������������������j������������������d�������x}�r.|j ������������������|�������}|D��]��}t��������|t��������j������������������j�������������������������rnt����������������}|j������������������D�]T��\��} } | dk(��rt��������| j���������������������������������}�%|j������������������| j������������������d�������| j������������������d����������������V���t��������|t��������j������������������j�������������������������r6||j������������������z ��}|j!������������������|j"������������������|j$����������������������������t��������|t��������j������������������j&�������������������������s��d}���|j)��������������������������x}r|�j������������������j+������������������|��������|s��}d�d�d���������|�J��t-��������||�j.������������������t1��������|���������������S�#�1�sw�Y����/xY�w)NFi����s���:status�asciiT)�statusrn����request_urlr{���)� bytearrayr<���rQ����recv�receive_datard���rI����events�ResponseReceivedr���rn����int�decode�add�DataReceivedr{����acknowledge_received_data�flow_controlled_lengthrm����StreamEndedrP���rR���� HTTP2ResponserZ���rx���)r!���r����r{���rS���ro���� received_datar�����eventrn���rh���r���rP���s��� r����getresponsezHTTP2Connection.getresponse����s����������{�� �]�]�d��J� �$(�I�I�N�N�5�$9�9�=�9�!�.�.�}�=�F�!'��%�e�R�Y�Y�-G�-G�H�&4�&6�G�16��� ���#)�Z�#7�-0�����-@�F�$+�K�K�(.� � �g�(>����W�@U�%&� �2?��(��r�y�y�/E�/E�F� �E�J�J�.�D� �:�:� %� <� <�e�o�o���(��r�y�y�/D�/D�E�)-�J�%�"(�(�$(�#4�#4�#6�6�<�6��I�I�%�%�l�3�3�!���:��!�!�!�����)�)��t�� �� �=��]�s����EG �&4G � GT)�preload_content�decode_content�enforce_content_lengthc���������������������d|v�r �|�j��������������������%|�j�������������������j������������������|�j��������������������������|�j������������������||��������|xs�i�}|j ��������������������������D�]0��\��} } | j��������������������������dk(��r| dk(��r�|�j ������������������| | ���������2�dt��������|�j�������������������������vr|�j ������������������dt������������������������|r$|�j������������������|���������|�j������������������|��������y|�j���������������������������y)zSend an HTTP/2 request�chunkedNztransfer-encodings ���user-agent)rq���)rQ���� settimeout�timeoutrb����itemsrf���rj����dictr>���r���rr���r}���)r!���r_���r`����bodyrn���r����r����r����rD����k�vs��� r����requestzHTTP2Connection.request��s������������ ��9�9� ��I�I� � ����.������$��-�R���M�M�O�D�A�q��w�w�y�/�/�A��N�����q�!�$� �$����T�]�]� 3�3��N�N�=�*A�*C�D���O�O��O�.��I�I�d�O��O�O�r���c�����������������D�����|�j�������������������5�} �|j���������������������������|j��������������������������x}r|�j������������������j ������������������|��������d�d�d���������|�j ��������������������������|�_���������d�|�_��������g�|�_��������t���������|��)�����������y�#�t ��������$�r�Y��Ew�xY�w#�1�sw�Y����JxY�wr���)r<����close_connectionrP���rQ���rR���� Exceptionr;���r=���r>���r@����close)r!���rS���r{���rE���s��� �r���r����zHTTP2Connection.close3��s�������� �]�]�d� ��%�%�'��,�,�.�.�4�.��I�I�%�%�d�+� ����)�)�+�� ������ � �� ������ �� ����]�s(����B�=B� B�B�B�B�Br���)rB���re���rC���� int | NonerD���� typing.Anyr.���r/���)r.���z)_LockedObject[h2.connection.H2Connection]�r.���r/���)r_���re���r`���re���rD���r����r.���r/���)rh����str | bytesri���r����r.���r/���)rq���r����r.���r/���)r{���r����r.���r/���)NN�http) rB���re���rC���r����rn����typing.Mapping[str, str] | Noner���re���r.���r/���)r.���r����)NN)r_���re���r`���re���r����z_TYPE_BODY | Nonern���r����r����r ���r����r ���r����r ���rD���r����r.���r/���)r0���r1���r2���r#���r;���rN���rb���rj���rr���r}���r����r����r����r����� __classcell__�rE���s���@r���r7���r7���U���sI������,0� O�� O�)� O�<F� O� � O�H�0�B��B���B��� B� � �B�>2��+�`� �37�� �� ��� ��1� � �� �� � �( � �( �\�#'�37�%��!%�#�'+�%��%���%�� � %� �1�%���%���%��!%�%���%�� �%�N��r���r7���c�������������������\�������e�Zd�Z �d � � � � � � � � � � �d��fd� Zedd���������Zdd�Zdd�Z��xZS�) r����c����������� ������N������t����������|����||ddd�||���������||�_��������d|�_��������y�)N����zHTTP/2)r����rn����version�version_string�reasonr����r����r���)r@���r#����_data�length_remaining)r!���r����rn���r����r{���r����rE���s��� �r���r#���zHTTP2Response.__init__F��s=�������� ������#��)�#�� �� ���� � !��r���c����������������������|�j�������������������S�r���)r����r&���s��� r���r{���zHTTP2Response.data\��s�������z�z�r���c�����������������������y�r���r5���r&���s��� r����get_redirect_locationz#HTTP2Response.get_redirect_location`��s������r���c�����������������������y�r���r5���r&���s��� r���r����zHTTP2Response.closec��s������r���)F)r����r����rn���r���r����re���r{���rx���r����r ���r.���r/���)r.���rx���r����) r0���r1���r2���r#����propertyr{���r����r����r����r����s���@r���r����r����D��se�������� %� "��"�� �"��� "� ��"��� "�� �"�,������� r���r����)r���rx���r.���r ���)r���rx���r.���r ���)%� __future__r����logging�rer����types�typing� h2.configrI���� h2.connection� h2.events�_base_connectionr����_collectionsr���rK���r���r���� exceptionsr ����responser ����orig_HTTPSConnection�TypeVarr���� getLoggerr0����log�compiler���r���r���r����Genericr���r7���r����r5���r���r����<module>r�������s�������"���� ������ ��������)��)��A��(��'�&����F�N�N�3����g����!��$�"�*�*�%D�E���'�R�Z�Z�(V�W���5�:��F�N�N�1�%���>l�o��l�^ �$�� r���