HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //proc/thread-self/root/usr/libexec/kcare/python/kcarectl/__pycache__/http_utils.cpython-38.pyc
U

n�hi�@s�ddlZddlZddlZddlZddlmZddlmZmZmZm	Z	m
Z
ddlmZm
Z
mZmZmZdd�Zdd	d
�Zdd�Zd
d�Zddd�Zdd�Zdd�Ze�ZdS)�N)�SSLError�)�config�	constants�errors�	log_utils�utils)�	HTTPError�Request�URLError�httplib�std_urlopenc	
Os�t|d�r|��}n|}t|�}|�di�}|�tjtjd��|��D]\}}|�	||�qHt
�d�||��zltj
s�d|kr�tj|d<tjs�ttdd�r�t��}d|_tj|_||d<t|f|�|�WSt|f|�|�WStk
�r*}z.|jd	k�rt�|j|j|j|j|j���W5d}~XYn~t k
�r�}z^|j!�r�t|j!d
d��r�|j!d
j"t"j#k�r�t�|d	t$|�dd��d�||�|_%||_�W5d}~XYnXdS)
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_moder
r	�coder�NotFound�url�msg�hdrs�fpr�argsr�ENOENT�str�reason)	r(r,�kwargsZrequest_urlr�header�value�ctx�ex�r5�0/usr/libexec/kcare/python/kcarectl/http_utils.py�urlopen_basesB

��
.r7Tcs�fdd�}|S)Ncsbt|t�r�o|jdkSt|ttjttjf�r2dSt	|d�r^t
|j�dkr^|jdtj
kr^dSdS)Ni�Tr,�r)�
isinstancer	r&rr�
HTTPExceptionr�socketrr�lenr,rZ
ECONNRESET)�e�state��retry_on_500r5r6�check_functionAs
(z3check_urlopen_retry_factory.<locals>.check_functionr5)r@rAr5r?r6�check_urlopen_retry_factory@s	rBcCst|d�r|��}|�d�S)Nrzfile:)rr�
startswith)r(r5r5r6�is_local_urlMs
rDcOsV|�dd�}|�dtj�}t|�r2t|f|�|�Stjt|d�|d�t�|f|�|�S)Nr@T�retry_countr?)�count)rr�RETRY_COUNTrDr7r�retryrB)r(r,r0r@rEr5r5r6�urlopenSs
rIcCsDt||d�}tjs(|r(|�dd�|��tjs@|r@|�tj|�|S)N)�method�
Authorizationz	Basic {0})r
r�UPDATE_FROM_LOCALrrr�AUTH_TOKEN_HEADER)r(Zauth_string�
auth_tokenrJ�requestr5r5r6�http_request[s

rPcCs<|dkrt�d�pt�d�S|dkr8t�d�p6t�d�SdS)N�httpZ
http_proxyZ
HTTP_PROXY�httpsZhttps_proxyZHTTPS_PROXY)�os�getenv)�schemer5r5r6�get_proxy_from_envfsrVcCsttd��pttd��S)NrQrR)�boolrVr5r5r5r6�
proxy_is_usedmsrX)T)NN)rrSr;r!r�rrrrr�py23r	r
rrr
r7rBrDrIrPrVrX�check_urlopen_retryr5r5r5r6�<module>s1