HEX
Server: Apache
System: Linux hp3-stn-1011028.hostingp3.local 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64
User: csh958633 (951153)
PHP: 8.3.30
Disabled: shell_exec,exec,system,popen,set_time_limit
Upload Files
File: //lib/python2.7/site-packages/rhn/rpclib.pyc
�
+Xc@s�dZddlZddlZddlZddlmZddlmZddlm	Z	yTddl
Z
ddlmZm
Z
mZmZmZmZddlmZmZWnZek
r
ddljZ
eZeZ
eZeZeZeZddlmZmZnXdZd	�Zd
�Z d�Z!de"fd
��YZ#dfd��YZ$de$fd��YZ%de&fd��YZ'de&fd��YZ(d�Z)dfd��YZ*de*fd��YZ+d�Z,dS(s2.6.3-1.el7i����N(t
transports(tsstr(tUserDictCase(tListTypet	TupleTypet
StringTypetUnicodeTypetDictTypetDictionaryType(t	splittypet	splithosticCs*ytjtj|�tSWntSXdS(s5 Returns true if n is IPv6 address, false otherwise. N(tsockett	inet_ptontAF_INET6tTruetFalse(tn((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyt
check_ipv6.s
c	Cs8|jdd�}d	}d	}d	}d	}t|�dkr�|d}|djdd�}|d}t|�dkr�|d}q�n
|d}|ddkr�tjdtd�\}}|jd�jd�}nPt|�r�|}n;|jdd�}|d}t|�dkr(|d}n||||fS(
s| Function used to split host information in an URL per RFC 2396
        handle full hostname like user:passwd@host:port
    t@iiit:t[s(?<=\]):t]N(tsplittNonetlentretip_porttlstriptrstripR(	t
hoststringtlthosttporttusertpasswdthostporttuserinfotarr((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyt
split_host6s,


	

cCsV|dkrtd��n|jdd�}t|�dkrL|d}nt|�S(NsHost string cannot be nulls://ii(Rt
ValueErrorRRR&(tproxyR%((s./usr/lib/python2.7/site-packages/rhn/rpclib.pytget_proxy_info[s
tMalformedURIErrorcBseZRS((t__name__t
__module__(((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyR*gstServerc
Bs^eZdZejZejZejZ	ej
Zdddddddddd�	Z
ddddd�Zd�Zd�Zd�Zd�Zdd	�Zd
�Zd�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�ZeZd�Zddd�Z d�Z!d�Z"d�Z#d�Z$d�Z%dd�Z&d�Z'd�Z(RS(s7uri [,options] -> a logical connection to an XML-RPC server

    uri is the connection point on the server, given as
    scheme://host/target.

    The standard implementation always supports the "http" scheme.  If
    SSL socket support is available (Python 2.0), it also supports
    "https".

    If the target part and the slash preceding it are both omitted,
    "/RPC2" is assumed.

    The following options can be given as keyword arguments:

        transport: a transport factory
        encoding: the request encoding (default is UTF-8)
        verbose: verbosity level
        proxy: use an HTTP proxy
        username: username for authenticated HTTP proxy
        password: password for authenticated HTTP proxy

    All 8-bit strings passed to the server proxy are assumed to use
    the given encoding.
    icCs�|dkr�t|�\}}}
}|dk	rCd||f}n|}|
dk	r�|dkr�|
}|dk	r�|dkr�|}q�q�nt|�|_d|_d|_d|_||_||_||_	|
|_
ttj
��dkr
tj
�d|_n	t|_|j�|dkrSd|_|j|j||||
�}n	d|_d|_d|_||_g|_d|_||_||_|j|�|j|	�d|_t�|_dS(Ns%s:%sii(RR)Rt_urit_refreshCallbackt_progressCallbackt_bufferSizet_proxyt	_usernamet	_passwordt_timeoutRt__version__Rtrpc_versiont_reset_host_handler_and_typet_allow_redirecttdefault_transportt_typet_redirectedtuse_handler_patht
_transportt_trusted_cert_filest_langt	_encodingt_verbosetset_refresh_callbacktset_progress_callbacktsend_handlerRt_headers(tselfturit	transporttencodingtverboseR(tusernametpasswordtrefreshCallbacktprogressCallbackttimeouttphtpptputpw((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyt__init__�sJ								
									

	cCs�|rZ|dkr6|j|d|d|d|�}q�|j|d|d|d|�}n3|dkr{|jd|�}n|jd|�}|S(Nthttpst
proxyUsernamet
proxyPasswordRP(t_transport_class_https_proxyt_transport_class_proxyt_transport_class_httpst_transport_class(RGttypeR(RLRMRPRI((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyR:�scCs
||_dS(N(R9(RGtallow((s./usr/lib/python2.7/site-packages/rhn/rpclib.pytallow_redirect�scCs|js
dS|jS(N(R9RR<(RG((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyt
redirected�s	cCs||_|jj|�dS(N(R/R>RC(RGRN((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyRC�s	cCs||_|jj|�dS(N(R1R>tset_buffer_size(RGt
bufferSize((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyRa�s	i@cCs ||_|jj||�dS(N(R0R>RD(RGRORb((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyRD�s	cCstj||d|j�S(NRJ(t	xmlrpclibtdumpsRA(RGtparamst
methodname((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyt	_req_body�scCs|jr|jjSdS(N(R>t
headers_inR(RG((s./usr/lib/python2.7/site-packages/rhn/rpclib.pytget_response_headers�s	
cCs|jr|jjSdS(N(R>tresponse_statusR(RG((s./usr/lib/python2.7/site-packages/rhn/rpclib.pytget_response_status�s	
cCs|jr|jjSdS(N(R>tresponse_reasonR(RG((s./usr/lib/python2.7/site-packages/rhn/rpclib.pytget_response_reasons	
c	Cs
|j�}|sdS|jd�}|s/dStd|j��}|ddksZt�t|�dksrt�|djd�}t|�dks�t�|\}}|dkr�d}nt|�}|jd�\}}i|d	6t|�d
6t|�d6}|S(
sSReturns a dictionary with three values:
            length: the total length of the entity-body (can be None)
            first_byte_pos: the position of the first byte (zero based)
            last_byte_pos: the position of the last byte (zero based)
           The range is inclusive; that is, a response 8-9/102 means two bytes
        s
Content-Rangeitbytesiit/t*t-tlengthtfirst_byte_post
last_byte_posN(RiRtgettfilterRtAssertionErrorRtint(	RGtheaderst
content_rangeR%tbranget	total_lentstarttendtresult((s./usr/lib/python2.7/site-packages/rhn/rpclib.pytget_content_ranges*	
cCs.|j�}|sdSd|kr*|dSdS(Ns
Accept-Ranges(RiR(RGRy((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyt
accept_ranges)scCs�t|j�\}}|d
kr0td��nt|�dksU|dd!dkr^t�n|d
kr||j�|_n	||_|jdkr�td��nt|�\|_	|_
|j
s�d	|_
nd
S(s Reset the attributes:
            self._host, self._handler, self._type
            according the value of self._uri.
        smissing protocol in uriiiis//thttpRVsunsupported XML-RPC protocols/RPC2N(R�shttps(R	R.RR*RtlowerR;tIOErrorR
t_hostt_handler(RGR]RH((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyR81s%			c		sBd}g}x|D]}t|�}|tks=|tkr[tj|dt|��}n�|tkr�t�fd�|D��}n�|tkr�g|D]}�j	|�^q�}nR|t
ks�|tkr	tg|j
�D]\}}�j	||�^q��}n|j|�qWt|�dkr4|dSt|�SdS(s> Strip characters, which are not allowed according:
            http://www.w3.org/TR/2006/REC-xml-20060816/#charsets
            From spec:
            Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]  /* any Unicode character, excluding the surrogate blocks, FFFE, and FFFF. */
        s#[\x00-\x09]|[\x0b-\x0c]|[\x0e-\x1f]tc3s|]}�j|�VqdS(N(t_strip_characters(t.0ti(RG(s./usr/lib/python2.7/site-packages/rhn/rpclib.pys	<genexpr>UsiiN(R]RRRtsubRRttupleRR�RRtdicttitemstappendR(	RGtargstregexpRtitemt	item_typeR�tnametval((RGs./usr/lib/python2.7/site-packages/rhn/rpclib.pyR�Hs 
%:c
Cs�d}d}|j�xi|tkr4td��n|jj�x0|jj�D]\}}|jj||�qQW|jjdd|j	�|jjdd�|j
r�|jjdd�n|r�|jjd	d
�|jr�|jjd|j�q�n|j|j
|�|�}y7|jj|j|j|d|j�}|jj}	Wn6tjk
r�|jrr�q�tj�dj}	nXd|_|d7}|	d
kr�Pn|	dkr�d|_qn|jj�|_d|_d}|j
std��n|jr!d|j|jfGHnt|j�\}
}|
dkrQ|
j�}
n|
dkrptd|
��n|jdkr�|
dkr�td��nt |�\|_|_|js�d|_n|`|j!|
|j"|j#|j$|j%�|_|j&|j'�|j(|j)�|j*|j+�|j,|j-�|j.gkrt/|jd�rx$|j.D]}|jj0|�qbWqqt1|t2j3�r�|St1|t4�r�t5|�dkr�|d}n|S(sL Call a method on the remote server
            we can handle redirections. is!Unable to fetch requested PackagesX-Infos+RPC Processor (C) Red Hat, Inc (version %s)sX-Client-VersionisX-RHN-Transport-Capabilitysfollow-redirects=3sX-RHN-Redirectt0s
X-RHN-PathRKi�i-i.sRedirects not alloweds%s redirected to %sR�RVs%Redirected to unsupported protocol %ss)HTTPS redirected to HTTP is not supporteds/RPC2tadd_trusted_certN(i-i.(shttpshttps(6R8tMAX_REDIRECTIONStInvalidRedirectionErrorR>t
clear_headersRFR�t
set_headert
add_headerR7R9RERgR�trequestR�R�RBRjRct
ProtocolErrorR=tsystexc_infoterrcodeRR<R`R.R	R�R;R
R:R2R3R4R5RDR0RCR/RaR1tsetlangR@R?thasattrR�t
isinstanceRtFileRR(
RGRfRetredirect_responsetretrytktvR�tresponset
save_responsettypRHtcertfile((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyt_requestbs�

	
			
					!
cCsd|jj|j|jfS(Ns
<%s for %s%s>(t	__class__R+R�R�(RG((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyt__repr__�scCst|j|�S(N(t_MethodR�(RGR�((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyt__getattr__�scKs<|js
dS|ji|d6|d6�|jj|�dS(NttransferRJ(R>tupdatetset_transport_flags(RGR�RJtkwargs((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyR��s		cCs|js
iS|jj�S(N(R>tget_transport_flags(RG((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyR��s	cCsdS(N((RG((s./usr/lib/python2.7/site-packages/rhn/rpclib.pytreset_transport_flags�scCsdt|�tg�td�gkrMg|D]}t|�^q+|j|<nt|�|j|<dS(N((R]tstrRF(RGR�targta((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyR��s$)cCsb||jkr:|j|}t|t�sK|g}qKng}|j|<|jt|��dS(N(RFR�RR�R�(RGR�R�tvlist((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyR�s
cCs;||_|jr7t|jd�r7|jj|�ndS(NR�(R@R>R�R�(RGtlang((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyR�
s	cCstd��dS(NsThis method is deprecated(tNotImplementedError(RGtca_chain((s./usr/lib/python2.7/site-packages/rhn/rpclib.pytuse_CA_chainscCsB|jj|�|jr>t|jd�r>|jj|�ndS(NR�(R?R�R>R�R�(RGR�((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyR�scCs&|jr"|jj�d|_ndS(N(R>tcloseR(RG((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyR�s	
N()R+R,t__doc__Rt	TransportR\t
SafeTransportR[tProxyTransportRZtSafeProxyTransportRYRRUR:R_R`RCRaRDRgRiRkRmR�R�R8R�R�R�t__str__R�R�R�R�R�R�R�R�R�R�(((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyR-lsH					C										#				s		
				
		t	GETServerc
BsteZdddddidddd�	Zd�Zd�Zddd�Zd�Zd�Zddddd�Z	RS(	icCsrtj||d|d|d|d|d|d|	d|
�||_||_|j|_|jddd	d�dS(
NR(RLRMRIRNRORPtoffsettamount(R-RUt_client_versionRFR�t
_orig_handlert	set_rangeR(RGRHRIR(RLRMtclient_versionRyRNRORP((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyRUs		cCs�|st|�dkr(td��ntd�|jjd��}|d|d|gt|d�}ddj|�|_|j|_|j	r�|j
r�|j�|_nx0|jj
�D]\}}|jj||�q�W|jdk	r�|jdkrIt|j�d}|jdk	r]|t|j|jd�}q]ndt|j�}|jjdd	|�|jjd
d�ndS(Nis$Required parameter channel not foundcSs
|dkS(NR�((tx((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyt<lambda>5sRos$RHNiRqtRangesbytes=tallow_partial_contentR�(Rt	ExceptionRvR�RtlisttjoinR�RER<R=t
_new_req_bodyRFR�R>R�t_offsetRR�t_amountR�(RGReRfth_compsthndlthR�R{((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyRg1s&%$cCs+t|j�\}}t|�\}}|S(N(R	R<R
(RGR]ttmpuritsitethandler((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyR�UscCs�|dk	rSyt|�}WqStk
rOtd|dtj�d��qSXn|dk	r�yt|�}Wn1tk
r�td|dtj�d��nX|dkr�td|��q�n||_||_dS(NsInvalid value `%s' for offsetisInvalid value `%s' for amounti(RRxR't
RangeErrorR�R�R�R�(RGR�R�((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyR�Zs
'
$	cCs|jjdd�dS(NR�i(R>R�(RG((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyR�oscCst|j|�S(N(t
SlicingMethodR�(RGR�((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyR�rscCs;tj||d|d|d|d|�}|jd�|S(NR(RLRMRPtGET(R-R:t
set_method(RGR]R(RLRMRPtret((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyR:vs*
N(
R+R,RRURgR�R�R�R�R:(((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyR�s		$				R�cBseZRS((R+R,(((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyR�|sR�cBseZRS((R+R,(((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyR�scCsoddl}t||j�s9||kr5||gSgSg|j|�D]"}|jdd�dj�^qIS(Ni����Ri(t	mimetoolsR�tMessagetgetallmatchingheadersRtstrip(RyR�R�R�((s./usr/lib/python2.7/site-packages/rhn/rpclib.pytgetHeaderValues�sR�cBs8eZdZd�Zd�Zd�Zd�ZeZRS(s{ some magic to bind an XML-RPC method to an RPC server.
        supports "nested" methods (e.g. examples.getStateName)
    cCs||_||_dS(N(t_sendt_name(RGtsendR�((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyRU�s	cCst|jd|j|f�S(Ns%s.%s(R�R�R�(RGR�((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyR��scGs|j|j|�S(N(R�R�(RGR�((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyt__call__�scCsd|jj|j|jfS(Ns<%s %s (%s)>(R�R+R�R�(RG((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyR��s(R+R,R�RUR�R�R�R�(((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyR��s				R�cBs)eZdZd�Zd�Zd�ZRS(s;
    A "slicing method" allows for byte range requests
    cCs tj|||�d|_dS(N(R�RURR�(RGR�R�((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyRU�scCst|jd|j|f�S(Ns%s.%s(R�R�R�(RGR�((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyR��scOs�|jd�|_|jd�|_y&|jjjd|jd|j�Wntk
r]nX|j|j|�}y|jjj�Wntk
r�nX|S(NR�R�(	RuR�R�R�tim_selfR�tAttributeErrorR�R�(RGR�R�R((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyR��s

(R+R,R�RUR�R�(((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyR��s		cCs�d}d}d}||kr1t||�}nd}||kr�t||�}|r�dj|�}ddl}d|j|�}q�n||fS(s% Reports the error from the headers. iR�sX-RHN-Fault-CodesX-RHN-Fault-Stringi����Ns%s(RxR�R�tbase64tdecodestring(RyR�terrmsgtst_sListt_sR�((s./usr/lib/python2.7/site-packages/rhn/rpclib.pytreportError�s(-R6RRR�trhnRtrhn.i18nRtrhn.UserDictCaseRRcttypesRRRRRRturllibR	R
tImportErrort
xmlrpc.clienttclientR�R�RnR�R�turllib.parseR�RR&R)R�R*R-R�R�R�R�R�R�R�R�(((s./usr/lib/python2.7/site-packages/rhn/rpclib.pyt<module>sB.
		%	��^