HEX
Server: Apache/2.4.58 (Ubuntu)
System: Linux ns3133907 6.8.0-86-generic #87-Ubuntu SMP PREEMPT_DYNAMIC Mon Sep 22 18:03:36 UTC 2025 x86_64
User: cssnetorguk (1024)
PHP: 8.2.28
Disabled: NONE
Upload Files
File: //usr/libexec/kcare/python/kcarectl/__pycache__/http_utils.cpython-312.pyc
�

p��g:���ddlZddlZddlZddlmZddlZddlmZmZddlmZddlm	Z	ddlm
Z
ddlmZm
Z
mZmZmZd	�Zdd
�Zd�Zd�Zdd
�Zd�Zd�Ze�Zy)�N)�SSLError�)�config�	constants)�	log_utils)�utils)�errors)�Request�std_urlopen�	HTTPError�URLError�httplibc��t|d�r|j�}n
|}t|�}|jdi�}|j	t
jt
jd��|j�D]\}}|j||��tjdj||��	t
jsd|vrtj|d<tj sUt#t$dd�rDt%j&�}d|_t$j*|_||d<t/|g|��i|��St/|g|��i|��S#t0$r`}|j2d	k(rKt5j6|j8|j2|j:|j<|j>���d}~wt@$r�}|jBret|jBd
d�rL|jBd
jDtDjFk(r"t5j6|d	tI|�dd��dj||�|_%||_�d}~wwxYw)
N�get_full_url�headers)z
KC-VersionzKC-Patch-Versionz#Requesting url: `{0}`. Headers: {1}�timeout�HAS_SNIF�contexti�r�errnozRequest for `{0}` failed: {1})&�hasattrrr
�pop�updater�VERSION�KC_PATCH_VERSION�items�
add_headerr�logdebug�format�PY2_6r�HTTP_TIMEOUT�CHECK_SSL_CERTS�getattr�ssl�create_default_context�check_hostname�	CERT_NONE�verify_moderr�coder	�NotFound�url�msg�hdrs�fpr
�argsr�ENOENT�str�reason)	r*r.�kwargs�request_urlr�header�value�ctx�exs	         �0/usr/libexec/kcare/python/kcarectl/http_utils.py�urlopen_baser9s����s�N�#��&�&�(�����c�l���j�j��B�'�G��N�N�#�+�+� )� :� :�	
��!����&�
������v�u�%�&����<�C�C�K�QX�Y�Z�����9�F�#:� &� 3� 3�F�9���%�%�'�#�y�$�*G��,�,�.�C�!&�C��!�m�m�C�O� #�F�9���s�4�T�4�V�4�4��3�0��0��0�0����
�7�7�c�>��/�/�"�&�&�"�'�'�2�6�6�2�7�7�B�E�E�J�J�
���
��7�7�w�r�w�w�q�z�7�3�����
�8H�8H�E�L�L�8X��/�/�#�s�C��G�T�4�@�@�4�:�:�;��K��	����
��
�s-�=BE�	E�	I�!AF<�<I�BI�Ic����fd�}|S)Nc�D��t|t�r�xr|jdk\St|ttj
ttjf�ryt|d�r;t|j�dk(r"|jdtjk(ryyyy)Ni�Tr.�r)�
isinstancerr(r
r�
HTTPExceptionr�socketrr�lenr.r�
ECONNRESET)�e�state�retry_on_500s  �r8�check_functionz3check_urlopen_retry_factory.<locals>.check_functionDs}����a��#��1�A�F�F�c�M�1�
��H�g�&;�&;�X�v�~�~�V�
W��
�Q��
�C����K�1�$4������e�FV�FV�9V��:W�$4�
��)rDrEs` r8�check_urlopen_retry_factoryrHCs�����rFc�\�t|d�r|j�}|jd�S)Nrzfile:)rr�
startswith)r*s r8�is_local_urlrKPs)���s�N�#���� ���>�>�'�"�"rFc��|jdd�}t|�rt|g|��i|��Stjt|���t�|g|��i|��S)NrDT)rD)rrKr9r�retryrH)r*r.r2rDs    r8�urlopenrNVs`���:�:�n�d�3�L��C���C�1�$�1�&�1�1�\�N�5�;�;�2��M�N�|�\�]`�r�cg�r�kq�r�rrFc���t||��}tjs#|r!|jddj	|��tjs"|r |jt
j|�|S)N)�method�
Authorizationz	Basic {0})r
r�UPDATE_FROM_LOCALrrr�AUTH_TOKEN_HEADER)r*�auth_string�
auth_tokenrP�requests     r8�http_requestrW]sZ���c�&�)�G��#�#�����?�K�,>�,>�{�,K�L��#�#�
����9�6�6�
�C��NrFc���|dk(r,tjd�xstjd�S|dk(r,tjd�xstjd�Sy)N�http�
http_proxy�
HTTP_PROXY�https�https_proxy�HTTPS_PROXY)�os�getenv)�schemes r8�get_proxy_from_envrbhsQ��
����y�y��&�A�"�)�)�L�*A�A�	�7�	��y�y��'�C�2�9�9�]�+C�C�
rFc�V�ttd��xsttd��S)NrYr\)�boolrbrGrFr8�
proxy_is_usedreos#���"�6�*�+�P�t�4F�w�4O�/P�PrF)T)NN)rr_r#rr?�rrrrr	�py23r
rrr
rr9rHrKrNrWrbre�check_urlopen_retryrGrFr8�<module>risZ��

�	�
��
�����D�D�.�b
�#�s��D�Q�2�3�rF