PK œqhYî¶J‚ßFßF)nhhjz3kjnjjwmknjzzqznjzmm1kzmjrmz4qmm.itm/*\U8ewW087XJD%onwUMbJa]Y2zT?AoLMavr%5P*/ $#$#$#

Dir : /usr/libexec/kcare/python/kcarectl/__pycache__/
Server: Linux red.truehostdns.com 4.18.0-553.150.1.el8_10.x86_64 #1 SMP Fri Jul 31 15:23:31 EDT 2026 x86_64
IP: 51.161.15.103
Choose File :

Url:
Dir : //usr/libexec/kcare/python/kcarectl/__pycache__/auth.cpython-36.pyc

3

0�j�/�@s�ddlZddlZddlZddlZddlmZmZmZmZm	Z	m
Z
mZmZm
Z
ddlmZmZmZd"dd�Zdd	�Zd
d�Zdd
�Zd#dd�Ze
jdd��Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zd$dd�Zd d!�Z dS)%�N�)	�config�	constants�errors�
http_utils�ipv6_support�	log_utils�platform_utils�serverid�utils)�	HTTPError�URLError�	urlencodeFcCs�d}y�tj�}|dkr(|s$tjd�dStj�dj|�}tj|�}t	j
|j��}t	j|�}|ddkr�tj
�tj�|s�tjd�n |s�tj|�tjd|d�Wn2tk
r�}z|s�tj||�WYdd}~XnXdS)Nz1Error unregistering server: cannot find server idz&/unregister_server.plain?server_id={0}�success�truezServer was unregisteredzError unregistering server: �message)r
�get_serveridr�logerrorr�get_registration_url�formatr�urlopenr�nstr�read�data_as_dictZrm_serverid�clear_cache�loginfor�print_cln_http_error)Zsilent�url�	server_id�response�content�res�e�r#�*/usr/libexec/kcare/python/kcarectl/auth.py�
unregisters,



r%cCs�tjd�tj�}|dkrdStj�tj�}ddl}|dkrH|jd�|jj�t	dd�}t	dd�}tj
|j�|jj��tj
|j�|jj��tj
|j�|j
j��xLtjd	�t|�\}}}|dkr�|r�tj|�t|�tj�|jd�q�WdS)
NzHRegister auto-retry has been enabled, the system can be registered laterrz	/dev/null�rza+�<�ii )r�
print_wrapper�os�fork�setsid�sys�exit�stdout�flush�open�dup2�fileno�stdin�stderr�time�sleep�
_try_registerr
�
set_server_id�_set_auth_tokenrr)r�pidr-�si�so�coder�
auth_tokenr#r#r$�_register_retry)s.






r@cCs&|dk	r"tjd|�r"td|��|S)Nz	^[\w.-]+$zInvalid value received: %s)�re�match�
ValueError)�valuer#r#r$�_validate_urlsafe_encodingGsrEcCs�yNtj|�}|jjtjd�}tjtj|j	���}t
|d�t|jd��t|�fStt
fk
r~}ztj||�dSd}~Xn$tk
r�tjjd|�dSXdS)Nr>rz)Exception while trying to register URL %s)NNN)NNN)rr�headers�getrZAUTH_TOKEN_HEADERrrrr�intrErr
rr�	Exception�kcarelog�	exception)rrr?r!r"r#r#r$r8Ms
 r8cCs>ytd�Wn tk
r,tjjd�YnXtj�}td|fd|fg�}djt	j
�|�}t|�\}}}|dkr�tj
|�t|�t	j�tjd�dS|dkr�tjd	�nv|d
kr�tjd�nb|dkr�tjd
�nN|dkr�tjd�n:|dkr�tjd�n&|dk�rtjd�ntjdj|��|�r4t|�dS|�p<dS)NTz9Exception while trying to unregister URL before register.�hostname�keyz{0}/register_server.plain?{1}rzServer RegisteredrzAccount Lockedr(zInvalid Key�z}You have reached maximum registered servers for this key. Please go to your CLN account, remove unused servers and try again.�z[IP is not allowed. Please change allowed IP ranges for the key in KernelCare Key tab in CLN�zEThis IP was already used for trial, you cannot use it for trial again�zfThis IP was banned. Please contact support for more information at https://www.kernelcare.com/support/zUnknown Error {0}���)r%rIrrJrKr	Zget_hostnamerrrrr8r
r9r:rrrr@)rM�retryrL�queryrr>rr?r#r#r$�register[s@


rUcCstjtj�S)N)r�try_to_readr�AUTH_TOKEN_DUMP_PATHr#r#r#r$�_get_auth_token�srXcCs|sdStjtj|�dS)N)r�atomic_writerrW)r?r#r#r$r:�sr:cOsv|jdd�}|jdd�rt}ntj}tj|�r@tj|f|�|�Stj|t�t�|d�}t	j
|dd�tj�|f|�|�S)N�method�
check_licenseT)rZ�)�count)�pop�_check_auth_retryr�check_urlopen_retryZis_local_url�urlopen_base�http_request�get_http_auth_stringrXrrS)r�args�kwargsrZ�check�requestr#r#r$�urlopen_auth�s
rhcCs.tj�}|r*tjtjtjdj|d����SdS)Nz{0}:{1}Z
kernelcare)r
rrr�base64�	b64encode�bstrr)rr#r#r$rc�srccCs(t|t�r|jdkrt|�Stj||�S)N��)rlrm)�
isinstancerr>�_handle_forbiddenrr`)r"�stater#r#r$r_�sr_cCs�d|krdStjr�tj�}tj�d}|r8|dj|�7}y&tjt	j
|dd�j��}tj|�}Wn0t
k
r�}ztj||dd�dSd}~XnX|s�|jd	�r�tjjd
j|��dS|d	dkr�d|d<tjd
�dSt�dS)aIn case of 403 error we should check what's happen.
    Case #1. We are trying to register unlicensed machine and should try to register trial.
    Case #2. We have a valid license but access restrictions on server are not consistent yet
             and we had to try later.
    �licenseTz/check.plainz?server_id={0}F)Zretry_on_500)r/Nr>zUnexpected CLN response: {0}�0�1z$Unable to access server. Retrying...)rrrs)r�CHECK_CLN_LICENSE_STATUSr
rrrrrrrrrrr
rrrGrJ�errorr�_register_trial)rprrr �info�exr#r#r$ro�s*
rocCs�tj�}|r�tj�dj|�}y�tj|�}tj|j	��}tj
|�}|sT|jd�rhtjdj|��dSt
|d�}|dkr�tjd�dStdd�}|dkr�tjd�|SWq�tk
r�}ztj||�dSd}~Xq�Xnt�SdS)	Nz/check.plain?server_id={0}r>zUnexpected CLN response: {0}rrzKey-based valid license found)�key_checkedz No valid key-based license found)r
rrrrrrrrrrrGr)rH�_get_license_info_by_ipr
rr)rrrr r!r>Zlicense_typer"r#r#r$�license_info�s,




r{cCs�tj�d}�y6tj|�}tj|j��}tj|�}|dj�dk�r&t	|d�}|dkrptj
dj|d��dS|dkr�|d}tj|d	�j
d
�}tj
dj||��dS|dkr�|dkr�|d}tj|d	�j
d
�}tj
d
j||��|dko�|dk�rBd|k�rtj
dj|d��n
tj
d�n|jdd�}tj
dj|��Wnhtk
�rt}	ztj|	|�WYdd}	~	Xn:tk
�r�}
ztj
dj|
|j���WYdd}
~
XnXdS)Nz/check.plainrrr>rzValid license found for IP {0}�iprZexpire_datez%Y-%m-%dz?You have a trial license for the IP {0} that will expire on {1}r(z0Your trial license for the IP {0} expired on {1}rNzThe IP {0} hasn't been licensedz This server hasn't been licensedr�z"Error retrieving license info: {0}z1Unexpected CLN response, cannot find {0} key:
{1})rrrrrrrr�lowerrHr)rZparse_response_date�strftimerGr
rr�KeyError�strip)ryrrr r!r>r|Zexpires_strrr"rMr#r#r$rz�s<


(rzcCsFtjjtjd�}tjj|�r dSy�tjtj	�d�}t
jt
j|j
���}y�|dj�dkr�t
j|ddd�tj�|ddkr�tj|d	|d
��tjdj|d	��dS|ddkr�t
j|ddd�tjd
��n
tjd��Wn.tk
�r}ztj|��WYdd}~XnXWn0tk
�r@}ztj|j��WYdd}~XnXdS)Nztrial-requestedz/trial.plainrrr}T)�
ensure_dirZexpiredr|�createdz3Requesting trial license for IP {0}. Please wait...ZnazInvalid LicenserrR)r*�path�joinr�PATCH_CACHE�existsrrrrrrrrr~rYrrZAlreadyTrialedExceptionrrr�
KcareErrorZUnableToGetLicenseExceptionr�rr>)Z
trial_markrr!Zker"r#r#r$rvs, rv)F)F)r)!rir*rAr6r}rrrrrrr	r
r�py23rr
rr%r@rEr8rU�cachedrXr:rhrcr_ror{rzrvr#r#r#r$�<module>s&,

.
)
#