HEX
Server: LiteSpeed
System: Linux kapuas.iixcp.rumahweb.net 5.14.0-427.42.1.el9_4.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Nov 1 14:58:02 EDT 2024 x86_64
User: mirz4654 (1666)
PHP: 8.1.33
Disabled: system,exec,escapeshellarg,escapeshellcmd,passthru,proc_close,proc_get_status,proc_nice,proc_open,proc_terminate,shell_exec,popen,pclose,dl,pfsockopen,leak,apache_child_terminate,posix_kill,posix_mkfifo,posix_setsid,posix_setuid,posix_setpgid,ini_alter,show_source,define_syslog_variables,symlink,syslog,openlog,openlog,closelog,ocinumcols,listen,chgrp,apache_note,apache_setenv,debugger_on,debugger_off,ftp_exec,dll,ftp,myshellexec,socket_bind,mail,posix_getwpuid
Upload Files
File: //usr/lib/python3.9/site-packages/rhn/__pycache__/transports.cpython-39.pyc
a

쑐c�|�@sZddlZddlZddlZddlmZddlmZmZddlm	Z	ddl
mZz ddlZddl
mZmZmZWn*ey�ddlmZeZeZeZYn0dZdZGd	d
�d
e�ZGdd�dej�ZGd
d�de�ZGdd�de�ZGdd�de�ZGdd�d�Zd%dd�Z d&dd�Z!Gdd�d�Z"Gdd�d�Z#d'dd �Z$d(d!d"�Z%e#Z&Gd#d$�d$�Z'dS))�N)�connections)�sstr�bstr)�SmartIO)�UserDictCase)�IntType�
StringType�ListTypez2.8.62.8.6-8.el98.el9�c@seZdZdS)�NotProcessedN)�__name__�
__module__�__qualname__�rr�2/usr/lib/python3.9/site-packages/rhn/transports.pyr$src@s�eZdZdeZd'dd�Zd(dd�Zd	d
�Zdd�Zd
d�Z	d)dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zd*dd�Zdd �Zd!d"�Zd#d$�Zd%d&�ZdS)+�	Transportzrhn.rpclib.py/%srNcCszd|_ddd�|_|j||d�t�|_d|_d|_d|_d|_||_	||_
d|_d|_d|_
d|_d|_||_||_dS)NFr��transfer�encoding�POST�@)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)�selfrrrrZuse_datetimer%rrr�__init__*s"zTransport.__init__rcCs||_||_dS�N�rr )r&rr rrr�set_progress_callback?szTransport.set_progress_callbackcCs
||_dSr()r)r&rrrr�set_refresh_callbackDszTransport.set_refresh_callbackcCs|durd}||_dS)Nr�r )r&r rrr�set_buffer_sizeJszTransport.set_buffer_sizecCs|dvrtd|��||_dS)N)ZGETrzUnknown request method %s)�IOErrorr)r&rrrr�
set_methodRszTransport.set_methodcKs<|j�|�|dur||jd<|dur0||jd<|��dS)Nrr)r�update�validate_transport_flags�r&rr�kwargsrrrrXs

zTransport.set_transport_flagscCs
|j��Sr()r�copy�r&rrr�get_transport_flagscszTransport.get_transport_flagscCsH|j�d�}t|dd�}||jd<|j�d�}t|dd�}||jd<dS)Nr�)�strictr)r�get�lookupTransfer�lookupEncoding)r&rrrrrr1fs
z"Transport.validate_transport_flagscCs@t|�tg�td�fvr.dd�|D�|j|<nt|�|j|<dS)NrcSsg|]}t|��qSr)�str)�.0�arrr�
<listcomp>t�z(Transport.set_header.<locals>.<listcomp>)�typerr<�r&�name�argrrr�
set_headerqszTransport.set_headercCsF||jvr&|j|}t|t�s4|g}ng}|j|<|�t|��dSr()r�
isinstancer	�appendr<)r&rCrDZvlistrrr�
add_headerxs


zTransport.add_headercCs|j��dSr()r�clearr5rrr�
clear_headers�szTransport.clear_headerscCs8|jrtd|f�|jr*tj||jd�St�|�SdS)NzConnecting via http to %s)r%)r�printr%r�HTTPConnection�r&�hostrrr�get_connection�s
zTransport.get_connectioncCsP||_|�|�\}}}|sg}|�|�}|�|j�|jrJ|�|jd�t||jd�}|jfi|j	��|�
d|j�t|j�
��|D]\}	}
|�
|	|
�q�|�
dd�|�|�dD]}|�|�q�|�||�\}}
|j�rtd�|�
�D]\}	}
td|	|
f�q�|
jd	v�r.|d
|_|
j|_dS||_|
j|_|
j|_|�|
|�S)Nr7)rrz
User-Agent�Content-Typeztext/xml)�Content-LengthZHostzIncoming headers:z	%s : %s�i-i.ZLocation)r�
get_host_inforOZset_user_agent�
user_agentZset_debuglevel�OutputrrrrE�listr�items�process�clear_header�	send_httprK�statusr$r"r!�reasonr#�_process_response)r&rN�handlerZrequest_bodyr�
extra_headers�x509rZreq�header�value�h�headers�fdrrr�request�s<


zTransport.requestcCsbt|j|j|jd�}|�|�}t|t�rPt|j|j	|j
|j|jd�}|j|_|S|��|�|�S)Nr)�r r)
�Inputr!rr �decoderF�InputStream�Filere�lengthrC�close�parse_response)r&rerZresp�frrrr]�s
�

�zTransport._process_responsecCs|jSr()r$r5rrr�
redirected�szTransport.redirectedcCsb|��\}}|�d�}|sqJ|jr*|��|jr>tdt|��|�|�q|��|��|��S)N�zbody:)Z	getparser�readrrrK�reprZfeedrm)r&ro�p�u�responserrrrn�s
zTransport.parse_responsecCs
||_dSr()r)r&�langrrr�setlang�szTransport.setlang)rrNNNN)r)NN)r)rr
r�__version__rTr'r*r+r-r/rr6r1rErHrJrOrfr]rprnrxrrrrr's(�


	
8rc@s&eZdZd	dd�Zdd�Zdd�ZdS)
�
SafeTransportrNcCs8tj||||||d�g|_|p"gD]}|�|�q$dS�N)rrr%)rr'�
trusted_certs�add_trusted_cert)r&rrrrr|r%�certfilerrrr'�s
�zSafeTransport.__init__cCs*t�|tj�std|��|j�|�dS�Nz%Certificate file %s is not accessible��os�access�R_OK�
ValueErrorr|rG�r&r~rrrr}szSafeTransport.add_trusted_certcCsR|�|�\}}}|jr$td|f�|jr>tj||j|jd�Stj||jd�SdS)NzConnecting via https to %s)r|r%)r|)rSrrKr%rZHTTPSConnectionr|)r&rNr_r`rrrrOs��zSafeTransport.get_connection)rrNNNN�rr
rr'r}rOrrrrrz�s
�
	rzc@seZdZddd�Zdd�ZdS)�ProxyTransportNrc		Cs,tj||||||d�||_||_||_dSr{)rr'�_proxy�_proxy_username�_proxy_password)	r&�proxy�
proxyUsername�
proxyPasswordrrrrr%rrrr's
�zProxyTransport.__init__cCs^|jr td||j|j|jf�|jrBtj|j||j|j|jd�Stj|j||j|jd�SdS)Nz8Connecting via http to %s proxy %s, username %s, pass %s)�username�passwordr%)r�r�)rrKr�r�r�r%rZHTTPProxyConnectionrMrrrrO#s�
�
�zProxyTransport.get_connection)NNrrNNN)rr
rr'rOrrrrr�s
�

r�c@s&eZdZd	dd�Zdd�Zdd�ZdS)
�SafeProxyTransportNrc
Cs>tj|||||||||	d�	g|_|p(gD]}
|�|
�q*dS)N)r�r�rrrrr%)r�r'r|r})r&r�r�r�rrrrr|r%r~rrrr'0s�zSafeProxyTransport.__init__cCs*t�|tj�std|��|j�|�dSrr�r�rrrr}=sz#SafeProxyTransport.add_trusted_certcCsf|jr td||j|j|jf�|jrFtj|j||j|j|j|jd�Stj|j||j|j|jd�SdS)Nz9Connecting via https to %s proxy %s, username %s, pass %s)r�r�r|r%)r�r�r|)	rrKr�r�r�r%rZHTTPSProxyConnectionr|rMrrrrOBs�
�
�z!SafeProxyTransport.get_connection)NNrrNNNNr�rrrrr�/s�

r�c@s:eZdZddd�Zejfdd�Zejfdd	�Zd
d�ZdS)
rhNrqrc	Cs�d|_d|_d|_d|_d|_d|_||_||_||_|s�dt	j
vrTt	j
d��|_dt	j
vrnt	j
d��|_dt	j
vr�t	j
d��|_dt	j
vr�tt	j
d�|_dt	j
vr�t	j
d|_d	t	j
vr�t	j
d	|_n�|�
�D]�}||}|��}|d
k�r"zt|�|_Wnt�yd|_Yn0q�|dk�r8|��|_q�|dk�rN|��|_q�|d
k�rd|��|_q�|dk�rz|��|_q�|dkr�||_q�d|_dS)Nr�C�ZHTTP_CONTENT_TRANSFER_ENCODINGZHTTP_CONTENT_ENCODINGzCONTENT-TYPEZCONTENT_LENGTHZHTTP_ACCEPT_LANGUAGEZHTTP_X_PACKAGE_FILENAMEzcontent-lengthzcontent-transfer-encodingzcontent-encodingzcontent-typezaccept-languagezx-package-filename)rrrArlrwrCrr �max_mem_sizer��environ�lower�int�keysr��io)r&rdrr r�rarbrcrrrr'hsR










zInput.__init__cCs�|jdkrdS|jr2t||j|j|j|jd�|_n
t|�|_|jrL|jdkrPdS|jdkr�ddl	}|j}|�
dd�t|jd�|_|�||j�n
t
|j��dS)N�application/octet-stream)r rr��binary�base64r�r�)rArl�_smart_readr rr�r��_smart_total_readrr��seekrri�NotImplementedError)r&rer�Zold_iorrrrr�s$
�


z
Input.readcCs\|jdkr t||j|j|jd�S|js0|�|�t|d�rB|��|jrR|jdkrTn�|jdvr�ddl	}|�
�}|j�dd�|�|j���|�
�}~t|�|_t|jd�|_|j�|�n�|jdv�rddl}|j�dd�|jd	t|jd
�}|��}t|�|_t|jd�|_|j�|�n*|jdk�r:t|j|j��nt|j|j��|j�dd�|jS)Nr��rmrm�__plain)�x-zlib�deflaterr�)�x-gzip�gzip�rb��mode�
compresslevelZfileobj�x-gpg)rArjrlrCrmr�rr�hasattrr�zlib�
decompressobjr��
decompress�flush�lenrr��writer��GzipFile�COMPRESS_LEVELr�r)r&rer��obj�datar��gzrrrri�s@




�
zInput.decodecCs|jSr()rwr5rrr�getlang�sz
Input.getlang)NNrqr)	rr
rr'�sys�stdinrrrir�rrrrrhgs�
80rhrqrcCs*t|d�}|�|�}|sq&|�|�q
|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�)rrrr�)rer r�r��chunkrrrr��s

r�cCs�t��}|}t|d�}|}|dkr�t��}	t||�}
|�|
�}t|�}
|
sLq�||
}|�|�|durhq|	|dks||dkr|	}t||�}||	|d}
|dkr�d}n||
}||||
|�q|�dd�|S)Nr�rr7g���ư>)�timer�minrrr�r��floatr�)re�amtr rr�Z	startTimeZlastTime�bufZorigsizeZcurTime�lr�Z	bytesReadZspeedZsecsrrrr�s2



r�c@seZdZddd�Zdd�ZdS)rj�	<unknown>NcCs ||_t|�|_||_||_dSr()rer�rlrCrm)r&rerlrCrmrrrr'=s
zInputStream.__init__cCsd|j|jfS)Nz0Input data is a stream of %d bytes for file %s.
)rlrCr5rrr�__repr__CszInputStream.__repr__)r�N)rr
rr'r�rrrrrj<s
rjc@s�eZdZdZdZdZdZdZdZdZ	ddgddgd	d
gdggZ
gd�Zddd�Zdd�Z
dd�Zdd�Zd dd�Zd!dd�Zdd�Zdd�ZdS)"�
BaseOutputrr7��Nr�r�r�r�r�r�)Nr�r�rcCs�|rt|tj�std��||_||_d|_t�|_d|_	d|_
i|_d|_d|_
d|_d|_d|_d|_|j||d�d|_dS)Nz&Expected an HTTPConnection type objectrr)rFrrL�	Exceptionr�_connectionr�rrdrr�transport_flagsr�r��_hostZ_handlerZ
_http_typeZ	_protocolr�_BaseOutput__processed)r&rrrrrrrr'cs$zBaseOutput.__init__cCsBt|�tg�td�fvr0d�tt|��|j|<nt|�|j|<dS)Nr�,)rA�join�mapr<rdrBrrrrE�szBaseOutput.set_headercCs||jvr|j|=dSr()rd)r&rCrrrrY�s
zBaseOutput.clear_headercCs�||_|j|jkr�ddl}|j|jd}|�d|�tdd�}|jdt|d�}t	j
ddkrn|�t|��n|�t
|��|��|��|_|��n�|j|jkr�ddl}|j|jd}|�d|�|�t�}|�|�|��|_n8|j|jk�r t|j|j��|j|jd}|�d|�|j|jk�rT|j|j}|�d|�|�d	d
�nH|j|jk�r�ddl}	|j|j}|�d|�|�d	d�|	�|j�|_|�dt|j��t}
tt���dk�r�t��d}
|�d
d|
�d|_ dS)NrzContent-Encodingr7)Z	force_mem�wbr�r�zContent-Transfer-EncodingrPzapplication/binaryztext/base64rQzX-Transport-Infoz=Extended Capabilities Transport (C) Red Hat, Inc (version %s))!r�r�ENCODE_GZIPr��	encodingsrErr�r�r��version_infor�rrrm�getvalue�ENCODE_ZLIBr��compressobj�compressr��
ENCODE_GPGr�r�TRANSFER_BINARY�	transfers�TRANSFER_BASE64r�Zencodestringr�ry�splitr�)r&r�r�Z
encoding_nameror�r�r�Z
transfer_namer�Zrpc_versionrrrrX�sZ
�


��zBaseOutput.processcKs||_||_|j�|�dSr()rrr�r0r2rrrr�szBaseOutput.set_transport_flags�/RPC2cCs�|js
t�||_|jdur"td��|j��|jj|j|t|j	�|j
d�|j��}|�|�s~t
�d|j|f|j|j|j��|j|fS)NzNo connection object found)�bodyrdz%s %s)r�rr�r�r�Zconnectrfrrr�rdZgetresponse�response_acceptable�	xmlrpclibZ
ProtocolErrorr[r\�msg)r&rNr^rvrrrrZ�s



��zBaseOutput.send_httpcCsP|jdkrdS|jdvrdS|jdkr*dS|j�d�s:dS|jddkrLdSdS)	z*Returns true if the response is acceptable��r7rR��rZallow_partial_contentrPr�)r[r�r9r�)r&rvrrrr��s


zBaseOutput.response_acceptablecCs|jr|j��d|_dSr()r�rmr5rrrrm�s
zBaseOutput.close)rrNr)rr)r�)rr
rZENCODE_NONEr�r�r�Z
TRANSFER_NONEr�r�r�r�r'rErYrXrrZr�rmrrrrr�Is*�
8

r�cCs�|durdSt|t�r8d|kr0ttj�kr8nn|St|t�rptttj��D]}tj||��krP|SqP|r�td|��dS)zTGiven a string or numeric representation of a transfer, return the
    transfer codeNrzUnsupported transfer %s)	rFrr�rUr�r�ranger�r�)rr8�irrrr:s(

r:cCs�|durdSt|t�r8d|kr0ttj�kr8nn|St|t�rptttj��D]}|��tj|vrP|SqP|r�td|��dS)zUGiven a string or numeric representation of an encoding, return the
    encoding codeNrzUnsupported encoding %s)	rFrr�rUr�rr�r�r�)rr8r�rrrr;s(

r;c@s@eZdZddd�Zdd�Zddd	�Zd
d�Zdd
�Zdd�ZdS)rkrNrcCsF||_||_|j|_||_d|_|r<||�d�dd�|_||_dS)Nr��/r7)rl�file_objrmr rC�rfindr)r&r�rlrCrr rrrr'&sz
File.__init__cCs|jSr()rlr5rrr�__len__1szFile.__len__cCs$|dur|��}|��S|j�|�Sr()�	_get_filerrr�)r&r�rerrrrr4sz	File.readcCsL|��}|�|j�}|sqHtjddkr8|�t|��q|�t|��q|S)zHCopies the contents of this File object into another file
        objectrr�)r�rrr r�r�r�rr)r&�filerer�rrr�read_to_file<szFile.read_to_filecCsL|jr,t|j|j|j|jd�}|�dd�nt|j|jd�}|�dd�|S)z�Read everything into a temporary file and call the progress
        callbacks if the file length is defined, or just reads till EOFrgrr,)rlr�r�r rr�r�)r&r�rrrr�Js
�zFile._get_filecCs|jr|��d|_dSr(r�r5rrr�__del__XszFile.__del__)rNNr)N)	rr
rr'r�rrr�r�r�rrrrrk%s�

rk)rqr)rqNr)r)r)(r�r�r�ZrhnrZrhn.i18nrrZrhn.SmartIOrZrhn.UserDictCaserr��typesrrr	�ImportErrorZ
xmlrpc.clientZclientr��bytesrVryr�r�rrrzr�r�rhr�r�rjr�r:r;rUrkrrrr�<module>
sF
V8	
�
<
8