a ZiQ@sjdZddlmZddlmZmZmZmZddl m Z Gddde Z Gdddej Zd d Zd d ZdS) z3.0.3-1.el9.cloudlinux-N)urlparse urlunparse splittype splithost) transportsc@s eZdZdS)MalformedURIErrorN)__name__ __module__ __qualname__r r ./usr/lib/python3.9/site-packages/rhn/rpclib.pyr srcsReZdZdZdfdd ZddZdd Zd d Zd d ZddZ ddZ Z S)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 sN|d}|dur.tj|||||||d}||tj|||ddS)Nhttps) use_httpstimeoutproxy)verbose) startswithrZRequestsTransport get_proxy_uri_reset_host_handler_and_typesuper__init__) selfuriZ transportrrusernamepasswordrr __class__r r r7s  zServer.__init__cCs|dur dStd|}d}|dur(|}|r@|dur@|d|}|rZ|j|d|jd}|rl|jdd}n |jdd}t|S)Nzhttp://:@)netlocr)schemehttp)r_replacer r)rZ proxy_hostZ proxy_userZ proxy_passrpartsZ auth_stringr r r rGs    zServer.get_proxy_uricCsxt|\}}|durtdt|dks8|dddkrddl}t||js*||vr&||gSgSdd||DS)NrcSs g|]}|dddqS)r)splitstrip).0xr r r z#getHeaderValues..) mimetools isinstanceZMessageZgetallmatchingheaders)headersr/r=r r r getHeaderValuess  r@cCsbd}d}d}||vr t||}d}||vrZt||}|rZd|}ddl}d||}||fS)z% Reports the error from the headers. rzX-RHN-Fault-CodezX-RHN-Fault-StringNz%s)intr@joinbase64Z decodestring)r?ZerrcodeerrmsgsZ_sListZ_srDr r r reportErrors   rG) __version__Z xmlrpc.clientZclientZ xmlrpclib urllib.parserrrrZrhnrr)rZ ServerProxyr r@rGr r r r s  ^