HEX
Server: Apache
System: Linux 162-240-236-42.bluehost.com 3.10.0-1160.114.2.el7.x86_64 #1 SMP Wed Mar 20 15:54:52 UTC 2024 x86_64
User: bt667 (1004)
PHP: 8.2.29
Disabled: NONE
Upload Files
File: //usr/libexec/kcare/python/kcarectl/ipv6_support.pyc
�
��	ic@s�ddlmZmZmZmZmZerAddlmZndZ	dZ
dZdefd��YZ
e
�Zd�Zd	�Zd
S(i(tconfigt
http_utilst	log_utilstserveridtutilsi����(tOptionaliitIPProtoSelectorcBs8eZd�Zd�Zed��Zed��ZRS(cCs
d|_dS(N(tNonet_cached_result(tself((s2/usr/libexec/kcare/python/kcarectl/ipv6_support.pyt__init__scCs�tjrtjd�tStjjd�s=tjd�tStjrWtjd�tS|j	dk	rm|j	Sd}|jtj�s�tjd�t}nJ|jtj�s�tjd�t}n"t
j�r�tjd�t}n|dk	r�||_	|S|jdt�}|jdt�}|tkrDtjd�t}nl|tkrftjd	�t}nJ|tkr�tjd
�t}n(|tkr�tjd�t}nt}||_	|S(
sk
        Choose ipv6 if it is more suitable.
        Checks order:
        - check config values (it is faster) - eportal setup and FORCE_IPVx
        - then check each proto availability using HEAD requests
        - then check if we have server_id, it means we don't expect an ip license
        - and finally we need to check if there is an ip license
        s,decided to use ipv4 because of config valuesskernelcare.coms,decided to use ipv6 because of config valuess1decided to use ipv4 because ipv6 is not availables1decided to use ipv6 because ipv4 is not availables/decided to use ipv4 because server id was foundtipv6s2decided to use ipv4 because ipv4 license was founds2decided to use ipv6 because ipv6 license was founds8decided to use ipv4 because ipv4 trial license was founds8decided to use ipv6 because ipv6 trial license was foundN(Rt
FORCE_IPV4RtlogdebugtFalsetPATCH_SERVERtendswitht
FORCE_IPV6tTrueRRt_is_url_reachabletPATCH_SERVER_IPV6Rtget_serveridt_get_cln_licensetCLN_VALID_LICENSEtCLN_TRIAL_ACTIVE_LICENSE(R	tresulttipv4_licensetipv6_license((s2/usr/libexec/kcare/python/kcarectl/ipv6_support.pytis_ipv6_preferredsR	

	

	
	
		
	
	
	
		cCs|tj|dddd�}y'tj|dddtdd�tSWn3tk
rw}tjd	j	|t
|���tSXdS(
NtmethodtHEADtauth_stringttimeouti
tretry_on_500tretry_countis%error during HEAD request to {0}: {1}(Rthttp_requestRturlopenRRt	ExceptionRR
tformattstr(turltrequestte((s2/usr/libexec/kcare/python/kcarectl/ipv6_support.pyRYscCs�|rtjntj}|d}tjtj|dt�j��}tj	|�}|sl|j
d�r�tjj
dj|��tSyt|d�SWntk
r�tSXdS(Ns/check.plainR!tcodesUnexpected CLN response: {0}(RtREGISTRATION_URL_IPV6tREGISTRATION_URLRtnstrRR$Rtreadtdata_as_dicttgetRtkcarelogterrorR&tCLN_NO_LICENSEtintt
ValueError(Rtbase_urlR(tcontenttinfo((s2/usr/libexec/kcare/python/kcarectl/ipv6_support.pyRds
$
(t__name__t
__module__R
RtstaticmethodRR(((s2/usr/libexec/kcare/python/kcarectl/ipv6_support.pyRs		?cCstj�rtjStjS(N(tip_proto_selectorRRRR(((s2/usr/libexec/kcare/python/kcarectl/ipv6_support.pytget_patch_server|scCstj�rtjStjS(N(R=RRR,R-(((s2/usr/libexec/kcare/python/kcarectl/ipv6_support.pytget_registration_url�sN(tRRRRRRttypingRRRR4tobjectRR=R>R?(((s2/usr/libexec/kcare/python/kcarectl/ipv6_support.pyt<module>s(d