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__/capabilities.cpython-36.pyc
3

c8h@sddlmZddlmZyddlZWnek
r@ddlZYnXddlZejdddZe	edsjeje_
ej
Zdd	idd
idd
idd
idd
idd
idd
idd
idZdd
Z
GdddejZdS))config)
up2dateErrorsNzrhn-client-toolsT)ZfallbackugettextversionZ211)caneatCheesesupportsAutoUp2dateOptionzregistration.finish_messagez xmlrpc.packages.extended_profilezregistration.delta_packagesz registration.update_contact_infoz$registration.extended_update_supportzregistration.smbiosc	Csd}|jd}g}x|D]}ydd|jddD\}}Wntk
rPwYnX|jdd\}}|d
dkrvtd|dd}||d	}|j||fqW|S)N,cSsg|]}|jqS)strip).0ir
r
"/usr/lib/python3.6/capabilities.py
<listcomp>#szparseCap.<locals>.<listcomp>=()z2something broke in parsing the capabilited headers)rvaluer)split
ValueErrorprintappend)	Z	capstringrZcapscapslistcapZkey_versionkeyrdatar
r
rparseCaps


rc@sNeZdZddZddZddZddZd	d
ZddZd
dZ	dddZ
dS)CapabilitiescCs&tjj|i|_t|_tj|_dS)N)UserDict__init__missingCaps
neededCapsrZinitUp2dateConfigcfg)selfr
r
rr!:szCapabilities.__init__cCsJxD|jD]8\}}|jdkr
t|}x|D]\}}||j|<q,Wq
WdS)Nzx-rhn-server-capability)itemslowerrr)r%Zheadersrvalrrrr
r
rpopulateCs
zCapabilities.populatecCsx|jd}|dkrF|jd}|d}|d}tt|t|d}|S|jd}t|dkrndd|D}|St|gS)N-rr:cSsg|]}t|qSr
)int)rar
r
rrWsz0Capabilities.parseCapVersion.<locals>.<listcomp>)findrranger,len)r%Z
versionStringindexrngstartendZversionsZversr
r
rparseCapVersionKs


zCapabilities.parseCapVersioncCsZ||jkr"td|}d|j|<n4|j|}t|d|j|dkrV|j||j|<dS)NzXThis client requires the server to support %s, which the current server does not supportr)r_r"r,r5r#)r%rZcapvalueZerrstrrr
r
rvalidateCap\s

zCapabilities.validateCapcCs2x$|jjD]}|j||j|qW|jdS)N)r#keysr7workaroundMissingCaps)r%rr
r
rvalidatehszCapabilities.validatecCs,||jkrd|j|<|j|=n
d|j|<dS)Nrr)tmpCapsr$)r%rZ
configItemr
r
r	setConfigns


zCapabilities.setConfigc	CsZ|j|_d}||jkr |j|=ndddddddd	}x |jD]}|j|||q>Wg}g}t|jrx>|jD]4}|j|}|dkr|j||fqp|j||fqpWd
}g}t|rxH|D]@\}}|d||d|j|df}|j|||j|d
qWt|r@x0|D](\}}|d|}|j||d
d
qWt|rVtj||dS)NrrZsupportsFinishMessageZsupportsUpdateContactInfoZsupportsDeltaPackagesZsupportsExtendedPackageProfileZsupportsEUSZsupportsSMBIOS)rzregistration.finish_messagez registration.update_contact_infozregistration.delta_packagesz xmlrpc.packages.extended_profilez$registration.extended_update_supportzregistration.smbiosz3Needs %s of version: %s but server has version: %s
r)ZcapNamecapInfoZ
serverVersionz5Needs %s but server does not support that capability
)	r"r;r8r<r0rrrZServerCapabilityError)	r%rZ
capsConfigMapr"ZwrongVersionCapsrr>Z	errStringZ	errorListr
r
rr9usF

	




z"Capabilities.workaroundMissingCapsNcCsR|dkst|jst||jkr&dS|rN|j|}t||j|dkrNdSdS)aChecks if the server supports a capability and optionally a version.
        Returns True or False.

        This complements the neededCaps mechanism provided by this module.
        Using hasCapability makes it easier to do something only if the server
        supports it or to put workaround code in the user of this class. The
        neededCaps mechanism makes it easier to put workaround code in this
        module, which makes sense if it is to be shared.

        'capability' should be a string such as 'registration.foobar'. It can
        be a capability in 'neededCaps' above or one that isn't there. 'version'
        can be a string (where isdigit() is True) or an int.

        NFrT)strisdigitAssertionErrorrr,r5)r%Z
capabilityrrr
r
r
hasCapabilitys

zCapabilities.hasCapability)N)__name__
__module____qualname__r!r)r5r7r:r<r9rBr
r
r
rr9s	<r)Zup2date_clientrrr ImportErrorcollectionsgettextZtranslationthasattrrr6r#rrr
r
r
r<module>s(