HEX
Server: LiteSpeed
System: Linux s1049.use1.mysecurecloudhost.com 4.18.0-477.27.2.lve.el8.x86_64 #1 SMP Wed Oct 11 12:32:56 UTC 2023 x86_64
User: xedaptot (3356)
PHP: 8.3.31
Disabled: NONE
Upload Files
File: //proc/self/root/lib/python3.6/site-packages/rhn/__pycache__/rpclib.cpython-36.pyc
3

�y=jB�@shdZddljZddlmZmZmZmZddl	m
Z
Gdd�de�ZGdd�dej
�Zd	d
�Zdd�ZdS)
z13.0.5-1.module_el8.10.0+7087+bd4dfabe.cloudlinux-�N)�urlparse�
urlunparse�	splittype�	splithost)�
transportsc@seZdZdS)�MalformedURIErrorN)�__name__�
__module__�__qualname__�rr�/usr/lib/python3.6/rpclib.pyr srcsReZdZdZd�fdd�	Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
�ZS)�Servera	uri [,options] -> a logical connection to an XML-RPC server

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

    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
        verbose: verbosity level
        proxy: use an HTTP proxy
        username: username for authenticated HTTP proxy
        password: password for authenticated HTTP proxy

    Nrc	sL|jd�}|dkr,tj|||j|||�d�}|j|�t�j|||d�dS)N�https)�	use_https�timeout�proxy)�verbose)�
startswithrZRequestsTransport�
get_proxy_uri�_reset_host_handler_and_type�super�__init__)	�self�uriZ	transportrrZusernameZpasswordrr)�	__class__rrr7s

zServer.__init__c	Cs�|dkrdSd}d|kr8|jd�\}}}|j�dkr8d}td||f�}d}|dk	rX|}|rp|dk	rp|d|}|r�|j|d|jd�}t|�S)N�httpz://rz%s://%s�:�@)�netloc)�	partition�lowerr�_replacerr)	rZ
proxy_hostZ
proxy_userZ
proxy_pass�scheme�prefix�_�partsZauth_stringrrrrGs zServer.get_proxy_uricCsxt|�\}}|dkrtd��t|�dks8|dd�dkr<t�|j�|_|jdkrXtd	��t|�\|_|_|jstd
|_dS)z�
        Reset the attributes:
        self._host, self._handler, self._type
        according the value of self._uri.

        Kept for backwards compatibility.
        Nzmissing protocol in uri�r�z//rrzunsupported XML-RPC protocolz/RPC2)rr)	rr�lenr Z_type�IOErrorrZ_hostZ_handler)rr�typerrrris	

z#Server._reset_host_handler_and_typecCs|jj||�S)N)�_ServerProxy__transport�
set_header)r�name�argrrrr,�szServer.set_headercCs|jj||�S)N)r+�
add_header)rr-r.rrrr/�szServer.add_headercCs
|jj�S)N)r+�
clear_headers)rrrrr0�szServer.clear_headerscCs|jj|�dS)N)r+�set_trusted_cert)rZcertfilerrrr1�szServer.set_trusted_cert)NrNNNN)rr	r
�__doc__rrrr,r/r0r1�
__classcell__rr)rrr
$s"r
cCs>ddl}t||j�s*||kr&||gSgSdd�|j|�D�S)NrcSs g|]}|jdd�dj��qS)r�)�split�strip)�.0�xrrr�
<listcomp>�sz#getHeaderValues.<locals>.<listcomp>)�	mimetools�
isinstanceZMessageZgetallmatchingheaders)�headersr-r:rrr�getHeaderValues�s
r=cCsbd}d}d}||kr t||�}d}||krZt||�}|rZdj|�}ddl}d|j|�}||fS)z% Reports the error from the headers. r�zX-RHN-Fault-CodezX-RHN-Fault-StringNz%s)�intr=�join�base64Zdecodestring)r<Zerrcode�errmsg�sZ_sListZ_srArrr�reportError�s

rD)�__version__Z
xmlrpc.clientZclientZ	xmlrpclibZurllib.parserrrrZrhnrr)rZServerProxyr
r=rDrrrr�<module>s
i