ROOTPLOIT
Server: LiteSpeed
System: Linux server71.web-hosting.com 4.18.0-513.18.1.lve.el8.x86_64 #1 SMP Thu Feb 22 12:55:50 UTC 2024 x86_64
User: niphet (1079)
PHP: 5.3.29
Disabled: NONE
Upload Files
File: //lib/python3.6/site-packages/up2date_client/__pycache__/config.cpython-36.pyc
3

c8h9@sndZddlZddlZddlZddlZddlmZmZddlm	Z	m
Z
yddlmZm
Z
Wn$ek
r|ddlmZm
Z
YnXddlZejdddZeed	seje_ejZdEdFdGdHdIdJdKdLdMdNdOdPdQdRdd d!d"d#gfd$Zd%d d&gZGd'd(d(ZGd)d*d*Zd+d,Zd-d.Zd/d0Zd1d2Zd3d4ZdSd6d7ZdTd8d9Z dUd:d;Z!d<d=Z"d>d?Z#d@dAZ$dVdCdDZ%dS)Wzj
This module includes the Config and Up2date Config classes use by the
up2date agent to hold config info.
N)idn_ascii_to_punyidn_puny_to_unicode)ustrsstr)urlsplit
urlunsplitzrhn-client-toolsT)ZfallbackugettextUse a HTTP ProxyRemote server URL)https://xmlrpc.cln.cloudlinux.com/XMLRPC/&Remote server URL for access over IPv6.https://ipv6.xmlrpc.cln.cloudlinux.com/XMLRPC/Mirror list URL>https://repo.cloudlinux.com/cloudlinux/mirrorlists/cln-mirrors#Whether or not debugging is enabledLocation of system id/etc/sysconfig/rhn/systemid4Override the automatically determined system version;HTTP proxy in host:port format, e.g. squid.example.com:3128'The username for an authenticated proxy.The password to use for an authenticated proxy$To use an authenticated proxy or notBNumber of attempts to make at network connections before giving up)The CA cert used to verify the ssl server'/usr/share/rhn/CLN-ORG-TRUSTED-SSL-CERTDisable the reboot actionzDConfig options that can not be overwritten by a config update action	sslCACert	serverURLdisallowConfChangesnoReboot)ZenableProxyr
serverURLipv6	mirrorURLdebugsystemIdPathZversionOverride	httpProxy	proxyUser
proxyPasswordZenableProxyAuthZnetworkRetriesrr!r r%ZtmpDirc@sleZdZdZdddZdddZddZd	d
ZddZd
dZ	ddZ
ddZddZddZ
ddZdS)
ConfigFilez;class for handling persistent config options for the clientNcCsi|_||_|jr|jdS)N)dictfileNameload)selffilenamer//usr/lib/python3.6/config.py__init__CszConfigFile.__init__cCs|r
||_|jdkrdStj|jtjs,dSt|jd}d}x|jD]}|jddkr^qH||j}|spqH|ddkr|ddj}qHnd}|jdd}t	|dkrqH|dj}t
|dj}d}|jd	}	|	dkr|d|	}|}d}|rx|jd
}
|dkr"t|jt
j}nVt	|
dkrVyt|}Wntk
rRYnXn"|
ddkrjg}nd
d|
D}||f}||jkr|j|}|dk	r||df}|dk	r|d|f}||j|<qHW|jdS)Nrr#rr\=z	[comment];r'r(cSsg|]}|jr|jqSr/)strip).0valr/r/r0
<listcomp>sz#ConfigFile.load.<locals>.<listcomp>r<r<)r'r()r+osaccessR_OKopen	readlinesfindr8splitlenrrencodelocalegetpreferredencodingint
ValueErrorr*close)r-r.fZ	multilinelinerCkeyvaluecommentposvaluesZnewvalr/r/r0r,Isd






zConfigFile.loadc	CsJ|jdkrdStj|jtjsTtjtjj|jtjsTttdtjj|jdSt|jdd}tj	|jdt
dd|jd|jd|jdx|jj
D]}|j|\}}|jtd	||ft|tgkr|g}|tkrttjj|}|jtd
|djtt|f|jdqW|jtj|jd|jdS)
Nz%s was not foundz.newwZ0644zI# Automatically generated Red Hat Update Agent config file, do not edit.
z# Format: 1.0
rz%s[comment]=%s
z%s=%s
r7
)r+r=r>r?pathdirnameprint_r@chmodrHwriter*keysrtypeFileOptionsmapabspathjoinstrrJrename)r-rKrMrOrNr/r/r0saves,
	


"zConfigFile.savecCs
||jkS)N)r*)r-namer/r/r0__contains__szConfigFile.__contains__cCs||kS)Nr/)r-rdr/r/r0has_keyszConfigFile.has_keycCs
|jjS)N)r*r[)r-r/r/r0r[szConfigFile.keyscCsdd|jjDS)NcSsg|]}|dqS)rr/)r9ar/r/r0r;sz%ConfigFile.values.<locals>.<listcomp>)r*rQ)r-r/r/r0rQszConfigFile.valuescCs|jj|dS)N)r*update)r-r*r/r/r0rhszConfigFile.updatecCs||jkr|j|dSdS)Nr)r*)r-rdr/r/r0__getitem__s
zConfigFile.__getitem__cCs0||jkr|j|}nd}|d|f|j|<dS)Nr)NN)r*)r-rdrNr:r/r/r0__setitem__s
zConfigFile.__setitem__cCs||jkr|j|dSdS)Nrr)r*)r-rdr/r/r0infos
zConfigFile.info)N)N)__name__
__module____qualname____doc__r1r,rcrerfr[rQrhrirjrkr/r/r/r0r)@s

H#r)c@sveZdZdddZddZddZdd	Zd
dZdd
ZddZ	ddZ
ddZddZddZ
ddZddZdS)ConfigNcCs.t|_|jjt|r$|jj|i|_dS)N)r)storedrhDefaultsr,runtime)r-r.r/r/r0r1s
zConfig.__init__cCs ||jkrdS||jkrdSdS)NTF)rsrq)r-rdr/r/r0res


zConfig.__contains__cCs||kS)Nr/)r-rdr/r/r0rfszConfig.has_keycCs8t|jj}x$|jjD]}||kr|j|qW|S)N)listrsr[rqappend)r-retkr/r/r0r[s
zConfig.keyscCs*g}x |jD]}|j|j|qW|S)N)r[ruri)r-rvrwr/r/r0rQsz
Config.valuescCs.g}x$|jD]}|j||j|fqW|S)N)r[ruri)r-rvrwr/r/r0itemsszConfig.itemscCst|jS)N)rDr[)r-r/r/r0__len__szConfig.__len__cCs||j|<dS)N)rs)r-rdrNr/r/r0rjszConfig.__setitem__cCs,||jkr|j|S||jkr(|j|SdS)N)rsrq)r-rdr/r/r0ri
s




zConfig.__getitem__cCs|jj|S)N)rqrk)r-rdr/r/r0rkszConfig.infocCs|jjdS)N)rqrc)r-r/r/r0rcszConfig.savecCs8|jj|x&|jjD]}||jkr(q|j|=qWdS)N)rqr,r[rs)r-r.rwr/r/r0r,s

zConfig.loadcCs ||j|<||jkr|j|=dS)N)rqrs)r-rdrNr/r/r0set#s

z
Config.set)N)rlrmrnr1rerfr[rQrxryrjrirkrcr,rzr/r/r/r0rps
		
rpcCs^t}d}|d}|rZ|dddkr2|dd}|jd}tt|d|d<dj|}|S)zkreturns proxy string in format hostname:port
    hostname is converted to Punycode (RFC3492) if needed
    Nr&zhttp://:r)initUp2dateConfigrCrarr`)cfgproxyZ	proxyHostpartsr/r/r0getProxySetting*s

rcCs:t|}tt|dtt|d|d|d|dfS)z=returns url where hostname is converted to Punycode (RFC3492)rrr6)rrrrr)urlsr/r/r0convert_url_to_puny<srcCs6t|}tt|dt|d|d|d|dfS)zXreturns url where hostname is converted from Punycode (RFC3492). Returns unicode string.rrr6rr)rrrr)rrr/r/r0convert_url_from_punyBsrc
Csvtd}|dkrd}|jdrVt|jddd }ttj|j}dd|DSQRXtj	|}dd|j
jd	DS)
Nr#z>https://repo.cloudlinux.com/cloudlinux/mirrorlists/cln-mirrorszfile://rr2cSsg|]}|rt|qSr/)r)r9mirrorr/r/r0r;Osz+getServerlURLFromMirror.<locals>.<listcomp>cSsg|]}|rt|qSr/)r)r9rr/r/r0r;QsrT)r~
startswithr@replacer^rar8rArequestsgettextrC)rZ
mirrorlistZmirrorsZrequestr/r/r0getServerlURLFromMirrorHs

rcCs&t|trdd|DSt|gSdS)z
    Internal function to process server URL to Punycode format.

    Processes both single URLs and lists of URLs.

    :param serverUrl: URL or list of URLs to process.
    :return: List of processed URLs in Punycode format.
    cSsg|]}t|qSr/)r)r9ir/r/r0r;^sz$processServerURL.<locals>.<listcomp>N)
isinstancertr)Z	serverUrlr/r/r0processServerURLTs	
rFcCs^t}t|d}t|d}||f}||f}|r6|Sddlm}|j}|dkrZ|rZ|S|S)a
    Return a pair of server URLs (primary and fallback) based on the preferred interface.

    :param registration: If True, it indicates that the URLs are being fetched for registration purposes.
    If that is the case, the function will always use IPv4 URLs with IPv6 as fallback,
    regardless of the preferred_interface setting.
    Assumed false by default, expected to be specified explicitly when needed.

    :return: Pair of server URL configs, first is the primary, second is the fallback.
    rr"r)up2dateAuthZIPv6)r}rZup2date_clientrZgetPreferredInterface)registrationr~Zipv4_urlZipv6_urlZipv4_primary_pairZipv6_primary_pairrZpreferred_interfacer/r/r0getServerURLPaircsrcCst|ddS)az
    Return the primary server URL from config based on preferred_interface.

    If preferred_interface=IPv6 in system_id, returns serverURLipv6 if available.
    Otherwise returns normal serverURL.
    Note: the config may have one value or a list of values, but this function always returns a list.

    :return: List of server URLs with hostnames converted to Punycode.
    )rr)r)rr/r/r0getServerURLs
rcCst|ddS)z
    Determine the fallback server URL from system_id.

    The fallback server URL is the one that is *not* set as preferred_interface.
    If preferred_interface is IPv6, it returns serverURL (i.e. IPv4 host), otherwise serverURLipv6.
    )rr)r)rr/r/r0getFallbackServerURLsrcCst}|jd|dS)zSet serverURL in configrN)r}rz)rr~r/r/r0setServerURLsrcCst}|jd|dS)zSet serverURLipv6 in configr"N)r}rz)rr~r/r/r0setServerURLipv6srcCst}|jd|dS)zSet sslCACert in configrN)r}rz)rr~r/r/r0setSSLCACertsr/etc/sysconfig/rhn/up2datecCsPytWntk
r daYnXtdkrLt|adtd<tjjrLdtd<tS)z<This function is the right way to get at the up2date config.NFisattyT)r~	NameErrorrpsysstdoutr)Zcfg_filer/r/r0r}s

r})r	r)r
r)rr
)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)F)F)F)r)&ror=rrFrZrhn.connectionsrrZrhn.i18nrrZurlparserrImportErrorZurllib.parsegettextZtranslationthasattrrrXrrr]r)rprrrrrrrrrrrr}r/r/r/r0<module>sb
O
'