509318396
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
3
Û`é|  ã               @   sZ  d dl Z d dlZd dlZd dlmZ d dlmZmZ d dlm	Z	 d dl
mZ y d dlZd dlmZmZmZ W n* ek
r–   d dljZeZeZeZY nX dZdZG d	d
„ d
eƒZG dd„ dejƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ dƒZd%dd„Z d&dd„Z!G dd„ dƒZ"G dd„ dƒZ#d'dd „Z$d(d!d"„Z%e#Z&G d#d$„ d$ƒZ'dS ))é    N)Úconnections)ÚsstrÚbstr)ÚSmartIO)ÚUserDictCase)ÚIntTypeÚ
StringTypeÚListTypezG2.8.62.8.6-8.module_el8.3.0+2053+3ddf28328.module_el8.3.0+2053+3ddf2832é   c               @   s   e Zd ZdS )ÚNotProcessedN)Ú__name__Ú
__module__Ú__qualname__© r   r   ú /usr/lib/python3.6/transports.pyr   $   s   r   c               @   s¤   e Zd Zde Zd'dd„Zd(dd„Zd	d
„ Zdd„ Zdd„ Z	d)dd„Z
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d#d$„ Zd%d&„ ZdS )+Ú	Transportzrhn.rpclib.py/%sr   Nc             C   sz   d| _ dddœ| _| j||d� tƒ | _d| _d | _d| _d | _|| _	|| _
d| _d | _d | _d | _d | _|| _|| _d S )NFr   )ÚtransferÚencodingÚPOSTi @  )Z_use_builtin_typesÚ_transport_flagsÚset_transport_flagsr   Ú_headersÚverboseÚ
connectionÚmethodÚ_langÚrefreshCallbackÚprogressCallbackÚ
bufferSizeÚ
headers_inÚresponse_statusÚresponse_reasonÚ_redirectedZ_use_datetimeÚtimeout)Úselfr   r   r   r   Zuse_datetimer#   r   r   r   Ú__init__*   s"    zTransport.__init__é @  c             C   s   || _ || _d S )N)r   r   )r$   r   r   r   r   r   Úset_progress_callback?   s    zTransport.set_progress_callbackc             C   s
   || _ d S )N)r   )r$   r   r   r   r   Úset_refresh_callbackD   s    zTransport.set_refresh_callbackc             C   s   |d krd}|| _ d S )Ni @  )r   )r$   r   r   r   r   Úset_buffer_sizeJ   s    zTransport.set_buffer_sizec             C   s   |dkrt d| ƒ‚|| _d S )NÚGETr   zUnknown request method %s)r*   r   )ÚIOErrorr   )r$   r   r   r   r   Ú
set_methodR   s    zTransport.set_methodc             K   s<   | j j|ƒ |d k	r|| j d< |d k	r0|| j d< | jƒ  d S )Nr   r   )r   ÚupdateÚvalidate_transport_flags)r$   r   r   Úkwargsr   r   r   r   X   s    

zTransport.set_transport_flagsc             C   s
   | j jƒ S )N)r   Úcopy)r$   r   r   r   Úget_transport_flagsc   s    zTransport.get_transport_flagsc             C   sH   | j jdƒ}t|dd�}|| j d< | j jdƒ}t|dd�}|| j d< d S )Nr   é   )Ústrictr   )r   ÚgetÚlookupTransferÚlookupEncoding)r$   r   r   r   r   r   r.   f   s    
z"Transport.validate_transport_flagsc             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>t   s    z(Transport.set_header.<locals>.<listcomp>)Útyper   r7   )r$   ÚnameÚargr   r   r   Ú
set_headerq   s    zTransport.set_headerc             C   sF   || j kr&| j | }t|tƒs4|g}ng  }| j |< |jt|ƒƒ d S )N)r   Ú
isinstancer	   Úappendr7   )r$   r<   r=   Zvlistr   r   r   Ú
add_headerx   s    


zTransport.add_headerc             C   s   | j jƒ  d S )N)r   Úclear)r$   r   r   r   Úclear_headers�   s    zTransport.clear_headersc             C   s8   | j rtd|f ƒ | jr*tj|| jd�S tj|ƒS d S )NzConnecting via http to %s)r#   )r   Úprintr#   r   ÚHTTPConnection)r$   Úhostr   r   r   Úget_connection„   s
    zTransport.get_connectionc             C   sX  || _ | j|ƒ\}}}|sg }| j|ƒ}|j| jƒ | j rJ|j| j d ƒ t|| jd�}|jf | j	Ž |j
d| jƒ x*t| jjƒ ƒ| D ]\}	}
|j
|	|
ƒ qˆW |j
ddƒ |j|ƒ xdD ]}|j|ƒ q¼W |j||ƒ\}}| j �rtdƒ x$|jƒ D ]\}	}
td	|	|
f ƒ qøW |jdk�r6|d | _|j| _d S || _|j| _|j| _| j||ƒS )Nr2   )r   r   z
User-AgentzContent-Typeztext/xmlúContent-LengthÚHostzIncoming headers:z	%s : %sé-  é.  ZLocation)rH   rI   )rJ   rK   )r   Úget_host_inforG   Zset_user_agentÚ
user_agentZset_debuglevelÚOutputr   r   r   r>   Úlistr   ÚitemsÚprocessÚclear_headerÚ	send_httprD   Ústatusr"   r    r   Úreasonr!   Ú_process_response)r$   rF   ÚhandlerZrequest_bodyr   Úextra_headersÚx509r   ZreqÚheaderÚvalueÚhÚheadersÚfdr   r   r   ÚrequestŒ   s<    



zTransport.requestc             C   sb   t | j| j| jd�}|j|ƒ}t|tƒrPt|j|j	|j
| j| jd�}|j|_|S |jƒ  | j|ƒS )N)r   r   )r   r   )ÚInputr   r   r   Údecoder?   ÚInputStreamÚFiler^   Úlengthr<   ÚcloseÚparse_response)r$   r^   r   ZrespÚfr   r   r   rV   Ä   s    




zTransport._process_responsec             C   s   | j S )N)r"   )r$   r   r   r   Ú
redirectedá   s    zTransport.redirectedc             C   sf   | j ƒ \}}x@|jdƒ}|sP | jr,| jƒ  | jr@tdt|ƒƒ |j|ƒ qW |jƒ  |jƒ  |jƒ S )Ni   zbody:)Z	getparserÚreadr   r   rD   ÚreprZfeedre   )r$   rg   ÚpÚuÚresponser   r   r   rf   å   s    
zTransport.parse_responsec             C   s
   || _ d S )N)r   )r$   Úlangr   r   r   Úsetlangù   s    zTransport.setlang)r   r   NNNN)r&   )NN)r   )r   r   r   Ú__version__rM   r%   r'   r(   r)   r,   r   r1   r.   r>   rA   rC   rG   r_   rV   rh   rf   ro   r   r   r   r   r   '   s&    


	
8r   c               @   s&   e Zd Zd	dd„Zdd„ Zdd„ ZdS )
ÚSafeTransportr   Nc             C   s<   t j| |||||d� g | _x|p$g D ]}| j|ƒ q&W d S )N)r   r   r#   )r   r%   Útrusted_certsÚadd_trusted_cert)r$   r   r   r   r   rr   r#   Úcertfiler   r   r   r%   ý   s    
zSafeTransport.__init__c             C   s*   t j|t jƒstd| ƒ‚| jj|ƒ d S )Nz%Certificate file %s is not accessible)ÚosÚaccessÚR_OKÚ
ValueErrorrr   r@   )r$   rt   r   r   r   rs     s    zSafeTransport.add_trusted_certc             C   sR   | j |ƒ\}}}| jr$td|f ƒ | jr>tj|| j| jd�S tj|| jd�S d S )NzConnecting via https to %s)rr   r#   )rr   )rL   r   rD   r#   r   ZHTTPSConnectionrr   )r$   rF   rX   rY   r   r   r   rG     s    zSafeTransport.get_connection)r   r   NNNN)r   r   r   r%   rs   rG   r   r   r   r   rq   ü   s    
rq   c               @   s   e Zd Zddd„Zdd„ ZdS )ÚProxyTransportNr   c	       	      C   s,   t j| |||||d� || _|| _|| _d S )N)r   r   r#   )r   r%   Ú_proxyÚ_proxy_usernameÚ_proxy_password)	r$   ÚproxyÚproxyUsernameÚproxyPasswordr   r   r   r   r#   r   r   r   r%     s    
zProxyTransport.__init__c             C   s^   | j r td|| j| j| jf ƒ | jrBtj| j|| j| j| jd�S tj| j|| j| jd�S d S )Nz8Connecting via http to %s proxy %s, username %s, pass %s)ÚusernameÚpasswordr#   )r€   r�   )r   rD   rz   r{   r|   r#   r   ZHTTPProxyConnection)r$   rF   r   r   r   rG   #  s    


zProxyTransport.get_connection)NNr   r   NNN)r   r   r   r%   rG   r   r   r   r   ry     s     
ry   c               @   s&   e Zd Zd	dd„Zdd„ Zdd„ ZdS )
ÚSafeProxyTransportNr   c
             C   sB   t j| ||||||||	d�	 g | _x|p*g D ]}
| j|
ƒ q,W d S )N)r~   r   r   r   r   r   r#   )ry   r%   rr   rs   )r$   r}   r~   r   r   r   r   r   rr   r#   rt   r   r   r   r%   0  s    zSafeProxyTransport.__init__c             C   s*   t j|t jƒstd| ƒ‚| jj|ƒ d S )Nz%Certificate file %s is not accessible)ru   rv   rw   rx   rr   r@   )r$   rt   r   r   r   rs   =  s    z#SafeProxyTransport.add_trusted_certc             C   sf   | j r td|| j| j| jf ƒ | jrFtj| j|| j| j| j| jd�S tj| j|| j| j| jd�S d S )Nz9Connecting via https to %s proxy %s, username %s, pass %s)r€   r�   rr   r#   )r€   r�   rr   )	r   rD   rz   r{   r|   r#   r   ZHTTPSProxyConnectionrr   )r$   rF   r   r   r   rG   B  s    

z!SafeProxyTransport.get_connection)NNr   r   NNNN)r   r   r   r%   rs   rG   r   r   r   r   r‚   /  s
     
r‚   c               @   s:   e Zd Zddd„Zejfdd„Zejfdd	„Zd
d„ ZdS )r`   Né   é @  c             C   sš  d | _ d | _d | _d| _d| _d| _|| _|| _|| _|sÐdt	j
krTt	j
d jƒ | _ dt	j
krnt	j
d jƒ | _dt	j
krˆt	j
d jƒ | _dt	j
kr¢tt	j
d ƒ| _dt	j
kr¸t	j
d | _d	t	j
krÎt	j
d	 | _nÀx¾|jƒ D ]²}|| }|jƒ }|d
k�r&yt|ƒ| _W n tk
�r"   d| _Y nX qÚ|dk�r<|jƒ | _ qÚ|dk�rR|jƒ | _qÚ|dk�rh|jƒ | _qÚ|dk�r~|jƒ | _qÚ|dkrÚ|| _qÚW d | _d S )Nr   ÚCÚ ZHTTP_CONTENT_TRANSFER_ENCODINGZHTTP_CONTENT_ENCODINGzCONTENT-TYPEZCONTENT_LENGTHZHTTP_ACCEPT_LANGUAGEZHTTP_X_PACKAGE_FILENAMEzcontent-lengthzcontent-transfer-encodingzcontent-encodingzcontent-typezaccept-languagezx-package-filename)r   r   r;   rd   rn   r<   r   r   Úmax_mem_sizeru   ÚenvironÚlowerÚintÚkeysrx   Úio)r$   r]   r   r   r‡   rZ   r[   r\   r   r   r   r%   h  sR    











zInput.__init__c             C   s¢   | j dkrd S | jr2t|| j| j| j| jd�| _n
t|ƒ| _| j sN| jdkrRd S | jdkr”dd l	}| j}|j
ddƒ t| jd�| _|j|| jƒ n
t| jƒ‚d S )Nzapplication/octet-stream)r   r   r‡   ÚbinaryÚbase64r   )r‡   )r;   rd   Ú_smart_readr   r   r‡   rŒ   Ú_smart_total_readr   rŽ   Úseekr   ra   ÚNotImplementedError)r$   r^   rŽ   Zold_ior   r   r   ri      s"    


z
Input.readc             C   s^  | j dkr t|| j| j|jd�S | js0| j|ƒ t|dƒrB|jƒ  | j sT| jdkrVnô| jdkr¾dd l	}|j
ƒ }| jjddƒ |j| jjƒ ƒ|jƒ  }~t|ƒ| _t| jd�| _| jj|ƒ nŒ| jdk�r dd l}| jjddƒ |jdt| jd�}|jƒ }t|ƒ| _t| jd�| _| jj|ƒ n*| jdk�r<t| j| jƒ‚nt| j| jƒ‚| jjddƒ | jS )Nzapplication/octet-stream)re   re   Ú__plainúx-zlibÚdeflater   )r‡   úx-gzipÚgzipÚrb)ÚmodeÚcompresslevelÚfileobjzx-gpg)r”   r•   )r–   r—   )r;   rb   rd   r<   re   rŒ   ri   Úhasattrr   ÚzlibZdecompressobjr‘   Z
decompressÚflushÚlenr   r‡   Úwriter—   ÚGzipFileÚCOMPRESS_LEVELr’   r   )r$   r^   r�   ÚobjÚdatar—   Úgzr   r   r   ra   º  s>    






zInput.decodec             C   s   | j S )N)rn   )r$   r   r   r   Úgetlangê  s    zInput.getlang)NNrƒ   r„   )	r   r   r   r%   ÚsysÚstdinri   ra   r¦   r   r   r   r   r`   g  s
    
70r`   é   é @  c             C   s.   t |d�}x| j|ƒ}|sP |j|ƒ qW |S )zà
    Tries to read data from the supplied stream, and puts the results into a
    StmartIO object. The data will be in memory or in a temporary file,
    depending on how much it's been read
    Returns a SmartIO object
    )r‡   )r   ri   r    )r^   r   r‡   rŒ   Úchunkr   r   r   r�   ï  s    

r�   c             C   sÖ   t j ƒ }|}t|d�}|}xª|dkrÄt j ƒ }	t||ƒ}
| j|
ƒ}t|ƒ}
|
sNP ||
 }|j|ƒ |d krjq|	| dks~|dkr|	}t|| ƒ}||	| d  }|dkr¬d}n|| }|||||ƒ qW |jddƒ |S )N)r‡   r   r2   g�íµ ÷Æ°>)Útimer   Úminri   rŸ   r    Úfloatr‘   )r^   Úamtr   r   r‡   Z	startTimeZlastTimeÚbufZorigsizeZcurTimeÚlr«   Z	bytesReadZspeedZsecsr   r   r   r�      s2    




r�   c               @   s   e Zd Zddd„Zdd„ ZdS )rb   ú	<unknown>Nc             C   s    || _ t|ƒ| _|| _|| _d S )N)r^   rŠ   rd   r<   re   )r$   r^   rd   r<   re   r   r   r   r%   =  s    
zInputStream.__init__c             C   s   d| j | jf S )Nz0Input data is a stream of %d bytes for file %s.
)rd   r<   )r$   r   r   r   Ú__repr__C  s    zInputStream.__repr__)r²   N)r   r   r   r%   r³   r   r   r   r   rb   <  s   
rb   c               @   s’   e Zd ZdZdZdZdZdZdZdZ	ddgddgd	d
gdggZ
dddgZd dd„Zdd„ Zdd„ Zdd„ Zd!dd„Zd"dd„Zdd„ Zdd„ ZdS )#Ú
BaseOutputr   r2   é   é   Nr“   zx-gzipr—   zx-zlibr•   zx-gpgr�   rŽ   r   c             C   s€   |rt |tjƒstdƒ‚|| _|| _d | _tƒ | _d| _	d| _
i | _d | _d | _d | _d | _d | _d | _| j||d� d| _d S )Nz&Expected an HTTPConnection type objectr   )r   r   )r?   r   rE   Ú	Exceptionr   Ú_connectionr¤   r   r]   r   r   Útransport_flagsr€   r�   Ú_hostZ_handlerZ
_http_typeZ	_protocolr   Ú_BaseOutput__processed)r$   r   r   r   r   r   r   r   r%   c  s$    zBaseOutput.__init__c             C   sB   t |ƒt g ƒt f ƒgkr0djtt|ƒƒ| j|< nt|ƒ| j|< d S )Nú,)r;   ÚjoinÚmapr7   r]   )r$   r<   r=   r   r   r   r>   �  s    zBaseOutput.set_headerc             C   s   || j kr| j |= d S )N)r]   )r$   r<   r   r   r   rR   ‘  s    
zBaseOutput.clear_headerc             C   sê  || _ | j| jkr˜dd l}| j| j d }| jd|ƒ tdd�}|jdt|d�}t	j
d dkrn|jt|ƒƒ n|jt|ƒƒ |jƒ  |jƒ | _ |jƒ  nˆ| j| jkrèdd l}| j| j d }| jd|ƒ |jtƒ}|j|ƒ|jƒ  | _ n8| j| jk�r t| j| jƒ‚| j| j d }| jd|ƒ | j| jk�rT| j| j }| jd|ƒ | jd	d
ƒ nH| j| jk�rœdd l}	| j| j }| jd|ƒ | jd	dƒ |	j| j ƒ| _ | jdt| j ƒƒ t}
ttjƒ ƒdk�rÐtjƒ d }
| jdd|
 ƒ d| _ d S )Nr   zContent-Encodingr2   )Z	force_memÚwb)r™   rš   r›   r¶   zContent-Transfer-EncodingzContent-Typezapplication/binaryztext/base64zContent-LengthzX-Transport-Infoz=Extended Capabilities Transport (C) Red Hat, Inc (version %s))!r¤   r   ÚENCODE_GZIPr—   Ú	encodingsr>   r   r¡   r¢   r§   Úversion_infor    r   r   re   ÚgetvalueÚENCODE_ZLIBr�   ZcompressobjÚcompressrž   Ú
ENCODE_GPGr’   r   ÚTRANSFER_BINARYÚ	transfersÚTRANSFER_BASE64rŽ   ZencodestringrŸ   rp   Úsplitr»   )r$   r¤   r—   Zencoding_namerg   r¥   r�   r£   Ztransfer_namerŽ   Zrpc_versionr   r   r   rQ   •  sT    



zBaseOutput.processc             K   s   || _ || _| jj|ƒ d S )N)r   r   r¹   r-   )r$   r   r   r/   r   r   r   r   Í  s    zBaseOutput.set_transport_flagsú/RPC2c             C   sˆ   | j s
t‚|| _| jd kr"tdƒ‚| jjƒ  | jj| j|t| j	ƒ| j
d� | jjƒ }| j|ƒs~tjd| j|f |j|j|jƒ‚|j|fS )NzNo connection object found)Zbodyr]   z%s %s)r»   r   rº   r¸   r·   Zconnectr_   r   r   r¤   r]   ZgetresponseÚresponse_acceptableÚ	xmlrpclibZProtocolErrorrT   rU   Úmsg)r$   rF   rW   rm   r   r   r   rS   Ò  s    




zBaseOutput.send_httpc             C   sP   |j dkrdS |j d
krdS |j dkr*dS | jjdƒs:dS |jd d	krLdS dS )z*Returns true if the response is acceptableéÈ   r2   é-  é.  éÎ   r   Zallow_partial_contentzContent-Typezapplication/octet-stream)rÐ   rÑ   )rT   r¹   r4   rÎ   )r$   rm   r   r   r   rÌ   ê  s    


zBaseOutput.response_acceptablec             C   s   | j r| j jƒ  d | _ d S )N)r¸   re   )r$   r   r   r   re   û  s    
zBaseOutput.close)r   r   Nr   )r   r   )rË   )r   r   r   ZENCODE_NONErÀ   rÄ   rÆ   ZTRANSFER_NONErÇ   rÉ   rÁ   rÈ   r%   r>   rR   rQ   r   rS   rÌ   re   r   r   r   r   r´   I  s,   
8

r´   c             C   s„   | dkrdS t | tƒr8d|   ko.ttjƒk n  r8| S t | tƒrpx,tttjƒƒD ]}tj| | jƒ krR|S qRW |r€td|  ƒ‚dS )zTGiven a string or numeric representation of a transfer, return the
    transfer codeNr   zUnsupported transfer %s)	r?   r   rŸ   rN   rÈ   r   Úranger‰   rx   )r   r3   Úir   r   r   r5      s    (
r5   c             C   s„   | dkrdS t | tƒr8d|   ko.ttjƒk n  r8| S t | tƒrpx,tttjƒƒD ]}| jƒ tj| krR|S qRW |r€td|  ƒ‚dS )zUGiven a string or numeric representation of an encoding, return the
    encoding codeNr   zUnsupported encoding %s)	r?   r   rŸ   rN   rÁ   r   rÓ   r‰   rx   )r   r3   rÔ   r   r   r   r6     s    (
r6   c               @   s@   e Zd Zddd„Zdd„ Zddd	„Zd
d„ Zdd„ Zdd„ ZdS )rc   r   Né @  c             C   sF   || _ || _|j| _|| _d| _|r<||jdƒd d … | _|| _d S )Nr†   ú/r2   )rd   Úfile_objre   r   r<   Úrfindr   )r$   r×   rd   r<   r   r   r   r   r   r%   &  s    zFile.__init__c             C   s   | j S )N)rd   )r$   r   r   r   Ú__len__1  s    zFile.__len__c             C   s$   |d kr| j ƒ }|jƒ S | jj|ƒS )N)Ú	_get_fileri   r×   )r$   r¯   r^   r   r   r   ri   4  s    z	File.readc             C   sP   | j ƒ }xB|j| jƒ}|sP tjd dkr:|jt|ƒƒ q
|jt|ƒƒ q
W |S )zHCopies the contents of this File object into another file
        objectr   r¶   )rÚ   ri   r   r§   rÂ   r    r   r   )r$   Úfiler^   r°   r   r   r   Úread_to_file<  s    zFile.read_to_filec             C   sL   | j r,t| j| j | j| jd�}|jddƒ nt| j| jd�}|jddƒ |S )zƒRead everything into a temporary file and call the progress
        callbacks if the file length is defined, or just reads till EOF)r   r   r   )r   )rd   r�   r×   r   r   r‘   r�   )r$   rŒ   r   r   r   rÚ   J  s    

zFile._get_filec             C   s   | j r| j ƒ  d | _ d S )N)re   )r$   r   r   r   Ú__del__X  s    zFile.__del__)r   NNrÕ   )N)	r   r   r   r%   rÙ   ri   rÜ   rÚ   rÝ   r   r   r   r   rc   %  s    


rc   )r©   rª   )r©   Nrª   )r   )r   )(ru   r§   r¬   Zrhnr   Zrhn.i18nr   r   Zrhn.SmartIOr   Zrhn.UserDictCaser   rÍ   Útypesr   r   r	   ÚImportErrorZxmlrpc.clientZclientrŠ   ÚbytesrO   rp   r¢   r·   r   r   rq   ry   r‚   r`   r�   r�   rb   r´   r5   r6   rN   rc   r   r   r   r   Ú<module>   sD   

 V8 	
 
; 8

