<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
3
Zi                 @   s6   d dl Z d dlZd dljZdZG dd de jjZdS )    Nz13.0.3-1.module_el8.10.0+7020+fd2ced8d.cloudlinux-c                   sl   e Zd ZdZde Zd fdd	Zdd Zd	d
 Zdd Z	dd Z
dd ZdddZdd Zdd Z  ZS )RequestsTransportzO
    Drop in Transport for xmlrpclib that uses Requests instead of httplib
    zrhn.rpclib.py/%sTNc                s0   || _ || _|| _i | _|| _tt| j  d S )N)https_verify	use_httpstimeout_injected_headers	proxy_urisuperr   __init__)selfr   r   r   proxy)	__class__  /usr/lib/python3.6/transports.pyr	      s    zRequestsTransport.__init__c             C   s@   t |t g t f gkr.dd |D | j|< nt|| j|< d S )Nc             S   s   g | ]}t |qS r   )str).0ar   r   r   
<listcomp>.   s    z0RequestsTransport.set_header.<locals>.<listcomp>)typer   r   )r
   nameargr   r   r   
set_header,   s    zRequestsTransport.set_headerc             C   sF   || j kr&| j | }t|ts4|g}ng  }| j |< |jt| d S )N)r   
isinstancelistappendr   )r
   r   r   Zvlistr   r   r   
add_header2   s    


zRequestsTransport.add_headerc             C   s   | j j  d S )N)Z_headersclear)r
   r   r   r   clear_headers;   s    zRequestsTransport.clear_headersc             C   s
   || _ d S )N)r   )r
   Zcertfiler   r   r   set_trusted_cert>   s    z"RequestsTransport.set_trusted_certc             c   sN   xH| j j D ]:\}}t|tg tf gkr<djtt|}||fV  qW d S )N,)r   itemsr   joinmapr   )r
   r   r   r   r   r   get_injected_headersA   s    z&RequestsTransport.get_injected_headersFc             C   s   | j ddd}t| j }| j||}d| ji}tj|f|||| j| j| jdd|}	y|	j	  W n> tj
k
r }
 z tjj||	jt|
|	jW Y dd}
~
X nX | j|	S dS )z)
        Make an xmlrpc request.
        ztext/xmlz*/*)z
User-AgentzContent-TypeZAcceptZverify)httphttps)dataheadersr   ZproxiesN)
user_agentdictr"   
_build_urlr   requestsZpostr   r   Zraise_for_statusZRequestExceptionxmlrpcclientZProtocolErrorZstatus_coder   r&   parse_response)r
   hosthandlerZrequest_bodyverboser&   Zextra_headersZurlkwargsZresper   r   r   requestR   s(    
 zRequestsTransport.requestc             C   s(   | j  \}}|j|j |j  |j S )z,
        Parse the xmlrpc response.
        )Z	getparserZfeedZcontentclose)r
   Zresponsepur   r   r   r-   u   s    z RequestsTransport.parse_responsec             C   s&   | j r
dnd}|jd}d|||f S )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
   r.   r/   schemer   r   r   r)      s    
zRequestsTransport._build_url)TTNN)F)__name__
__module____qualname____doc____version__r'   r	   r   r   r   r   r"   r3   r-   r)   __classcell__r   r   )r   r   r      s      	
#r   )r+   r*   Zxmlrpc.clientr,   Z	xmlrpclibr>   Z	Transportr   r   r   r   r   <module>   s   
