a ZïiÐã@s8ddlZddlZddlmZdZGdd„dejjƒZdS)éNz3.0.3-1.el9.cloudlinux-csleZdZdZdeZd‡fdd„ Zdd„Zd d „Zd d „Z d d„Z dd„Z ddd„Z dd„Z dd„Z‡ZS)ÚRequestsTransportzO Drop in Transport for xmlrpclib that uses Requests instead of httplib zrhn.rpclib.py/%sTNcs0||_||_||_i|_||_tt|ƒ ¡dS©N)Ú https_verifyÚ use_httpsÚtimeoutÚ_injected_headersÚ proxy_uriÚsuperrÚ__init__)ÚselfrrrÚproxy©Ú __class__©ú2/usr/lib/python3.9/site-packages/rhn/transports.pyr s zRequestsTransport.__init__cCs@t|ƒtgƒtdƒfvr.dd„|Dƒ|j|<nt|ƒ|j|<dS)NrcSsg|] }t|ƒ‘qSr)Ústr)Ú.0ÚarrrÚ .óz0RequestsTransport.set_header..)Útyperr©r ÚnameÚargrrrÚ set_header,szRequestsTransport.set_headercCsF||jvr&|j|}t|tƒs4|g}ng}|j|<| t|ƒ¡dSr)rÚ isinstanceÚlistÚappendr)r rrZvlistrrrÚ add_header2s    zRequestsTransport.add_headercCs|j ¡dSr)Z_headersÚclear)r rrrÚ clear_headers;szRequestsTransport.clear_headerscCs ||_dSr)r)r ZcertfilerrrÚset_trusted_cert>sz"RequestsTransport.set_trusted_certccsJ|j ¡D]:\}}t|ƒtgƒtdƒfvr:d tt|ƒ¡}||fVq dS)Nrú,)rÚitemsrÚjoinÚmaprrrrrÚget_injected_headersAs z&RequestsTransport.get_injected_headersFc Cs¼|jdddœ}t| ¡ƒ}| ||¡}d|ji}tj|f|i|¥|¥|j|j|jdœdœ|¤Ž} z |   ¡Wn@tj y¬} z&t j   || jt| ƒ| j¡‚WYd} ~ nd} ~ 00| | ¡SdS)z) Make an xmlrpc request. ztext/xmlz*/*)z User-Agentz Content-TypeZAcceptZverify)ÚhttpÚhttps)ÚdataÚheadersrZproxiesN)Ú user_agentÚdictr&Ú _build_urlrÚrequestsZpostrrZraise_for_statusZRequestExceptionÚxmlrpcÚclientZ ProtocolErrorZ status_coderr*Úparse_response) r ÚhostÚhandlerZ request_bodyÚverboser*Z extra_headersÚurlÚkwargsZrespÚerrrÚrequestRs:ý   ÿÿþþú ö    ÿzRequestsTransport.requestcCs(| ¡\}}| |j¡| ¡| ¡S)z, Parse the xmlrpc response. )Z getparserZfeedZcontentÚclose)r ZresponseÚpÚurrrr1us  z RequestsTransport.parse_responsecCs&|jr dnd}| d¡}d|||fS)zf Build a url for our request based on the host, handler and use_http property r(r'ú/z %s://%s/%s)rÚlstrip)r r2r3Úschemerrrr-€s zRequestsTransport._build_url)TTNN)F)Ú__name__Ú __module__Ú __qualname__Ú__doc__Ú __version__r+r rrr r!r&r8r1r-Ú __classcell__rrr rrsû  # r)r/r.Z xmlrpc.clientr0Z xmlrpclibrCZ TransportrrrrrÚ s