Hacked By AnonymousFox

Current Path : /opt/alt/python37/lib64/python3.7/xmlrpc/__pycache__/
Upload File :
Current File : //opt/alt/python37/lib64/python3.7/xmlrpc/__pycache__/server.cpython-37.opt-2.pyc

B

YI~d9��	@sddlmZmZmZmZmZddlmZddlm	Z	ddl
mZddlZddlZ
ddlZddlZddlZddlZddlZddlZyddlZWnek
r�dZYnXd*dd�Zd	d
�ZGdd�d�ZGd
d�de�ZGdd�deje�ZGdd�de�ZGdd�de�ZGdd�dej�ZGdd�d�Z Gdd�de�Z!Gdd�dee �Z"Gdd�dee �Z#e$dk�r
ddl%Z%Gd d!�d!�Z&ed"��~Z'e'�(e)�e'�(d#d$�d%�e'j*e&�dd&�e'�+�e,d'�e,d(�ye'�-�Wn(e.k
�r�e,d)�e�/d�YnXWdQRXdS)+�)�Fault�dumps�loads�gzip_encode�gzip_decode)�BaseHTTPRequestHandler)�partial)�	signatureNTcCsJ|r|�d�}n|g}x.|D]&}|�d�r8td|��qt||�}qW|S)N�.�_z(attempt to access private attribute "%s")�split�
startswith�AttributeError�getattr)�obj�attr�allow_dotted_namesZattrs�i�r�2/opt/alt/python37/lib64/python3.7/xmlrpc/server.py�resolve_dotted_attribute|s


rcs�fdd�t��D�S)Ncs(g|] }|�d�stt�|��r|�qS)r)r
�callabler)�.0�member)rrr�
<listcomp>�s
z'list_public_methods.<locals>.<listcomp>)�dir)rr)rr�list_public_methods�src@sleZdZddd�Zddd�Zddd�Zd	d
�Zdd�Zdd
d�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dS)�SimpleXMLRPCDispatcherFNcCs&i|_d|_||_|pd|_||_dS)Nzutf-8)�funcs�instance�
allow_none�encoding�use_builtin_types)�selfr r!r"rrr�__init__�s

zSimpleXMLRPCDispatcher.__init__cCs||_||_dS)N)rr)r#rrrrr�register_instance�s!z(SimpleXMLRPCDispatcher.register_instancecCs2|dkrt|j|d�S|dkr$|j}||j|<|S)N)�name)r�register_function�__name__r)r#Zfunctionr&rrrr'�s
z(SimpleXMLRPCDispatcher.register_functioncCs|j�|j|j|jd��dS)N)zsystem.listMethodszsystem.methodSignaturezsystem.methodHelp)r�update�system_listMethods�system_methodSignature�system_methodHelp)r#rrr� register_introspection_functions�s
z7SimpleXMLRPCDispatcher.register_introspection_functionscCs|j�d|ji�dS)Nzsystem.multicall)rr)�system_multicall)r#rrr�register_multicall_functions�sz3SimpleXMLRPCDispatcher.register_multicall_functionscCs�yPt||jd�\}}|dk	r(|||�}n|�||�}|f}t|d|j|jd�}Wn�tk
r�}zt||j|jd�}Wdd}~XYnNt��\}}	}
z$ttdd||	f�|j|jd�}Wdd}}	}
XYnX|�	|jd�S)N)r"�)Zmethodresponser r!)r r!z%s:%s)r!r �xmlcharrefreplace)
rr"�	_dispatchrr r!r�sys�exc_info�encode)r#�data�dispatch_method�path�params�method�response�fault�exc_type�	exc_value�exc_tbrrr�_marshaled_dispatch�s&z*SimpleXMLRPCDispatcher._marshaled_dispatchcCs^t|j���}|jdk	rVt|jd�r8|t|j���O}nt|jd�sV|tt|j��O}t|�S)N�_listMethodsr2)�setr�keysr�hasattrrAr�sorted)r#�methodsrrrr*s
z)SimpleXMLRPCDispatcher.system_listMethodscCsdS)Nzsignatures not supportedr)r#�method_namerrrr+/sz-SimpleXMLRPCDispatcher.system_methodSignaturecCs�d}||jkr|j|}nX|jdk	rrt|jd�r<|j�|�St|jd�sryt|j||j�}Wntk
rpYnX|dkr~dSt�|�SdS)N�_methodHelpr2�)	rrrDrHrrr�pydoc�getdoc)r#rGr:rrrr,<s"

z(SimpleXMLRPCDispatcher.system_methodHelpc
Cs�g}x�|D]�}|d}|d}y|�|�||�g�Wq
tk
rl}z|�|j|jd��Wdd}~XYq
t��\}}}	z|�dd||fd��Wdd}}}	XYq
Xq
W|S)NZ
methodNamer9)�	faultCode�faultStringr0z%s:%s)�appendr2rrLrMr3r4)
r#Z	call_list�resultsZcallrGr9r<r=r>r?rrrr.[s$

z'SimpleXMLRPCDispatcher.system_multicallcCs�y|j|}Wntk
r"YnX|dk	r4||�Std|��|jdk	r�t|jd�rd|j�||�Syt|j||j�}Wntk
r�YnX|dk	r�||�Std|��dS)Nzmethod "%s" is not supportedr2)	r�KeyError�	ExceptionrrDr2rrr)r#r:r9�funcrrrr2s(
z SimpleXMLRPCDispatcher._dispatch)FNF)F)NN)NN)r(�
__module__�__qualname__r$r%r'r-r/r@r*r+r,r.r2rrrrr�s	

$

)
$rc@sbeZdZdZdZdZdZe�dej	ej
B�Zdd�Zdd	�Z
d
d�Zdd
�Zdd�Zddd�ZdS)�SimpleXMLRPCRequestHandler)�/z/RPC2ix���Tz�
                            \s* ([^\s;]+) \s*            #content-coding
                            (;\s* q \s*=\s* ([0-9\.]+))? #q
                            cCsbi}|j�dd�}xJ|�d�D]<}|j�|�}|r|�d�}|rHt|�nd}|||�d�<qW|S)NzAccept-EncodingrI�,�g�?r0)�headers�getr�	aepattern�match�group�float)r#�rZae�er]�vrrr�accept_encodings�s
z+SimpleXMLRPCRequestHandler.accept_encodingscCs|jr|j|jkSdSdS)NT)�	rpc_pathsr8)r#rrr�is_rpc_path_valid�sz,SimpleXMLRPCRequestHandler.is_rpc_path_validc
Cs�|��s|��dSy�d}t|jd�}g}x>|rjt||�}|j�|�}|sNP|�|�|t|d�8}q.Wd�	|�}|�
|�}|dkr�dS|j�|t
|dd�|j�}Wn�tk
�r8}zp|�d�t|jd��r|jj�r|�dt|��t��}	t|	�d	d
�d	�}	|�d|	�|�dd
�|��Wdd}~XYn�X|�d�|�dd�|jdk	�r�t|�|jk�r�|���dd�}
|
�r�yt|�}|�dd�Wntk
�r�YnX|�dtt|���|��|j�|�dS)Ni�zcontent-lengthrW�r2i��_send_traceback_headerzX-exception�ASCII�backslashreplacezX-tracebackzContent-length�0��zContent-typeztext/xml�gziprzContent-Encoding) re�
report_404�intrZ�minZrfile�readrN�len�join�decode_request_content�serverr@rr8rQ�
send_responserDrg�send_header�str�	traceback�
format_excr5�end_headers�encode_thresholdrcr[r�NotImplementedError�wfile�write)r#Zmax_chunk_sizeZsize_remaining�LZ
chunk_size�chunkr6r;raZtrace�qrrr�do_POST�sX






z"SimpleXMLRPCRequestHandler.do_POSTcCs�|j�dd���}|dkr|S|dkrtyt|�Stk
rR|�dd|�Yq�tk
rp|�dd�Yq�Xn|�dd|�|�dd	�|��dS)
Nzcontent-encoding�identityrli�zencoding %r not supportedi�zerror decoding gzip contentzContent-lengthrj)	rZr[�lowerrr|ru�
ValueErrorrvrz)r#r6r!rrrrs$sz1SimpleXMLRPCRequestHandler.decode_request_contentcCsF|�d�d}|�dd�|�dtt|���|��|j�|�dS)Ni�sNo such pagezContent-typez
text/plainzContent-length)rurvrwrqrzr}r~)r#r;rrrrm5s
z%SimpleXMLRPCRequestHandler.report_404�-cCs|jjrt�|||�dS)N)rt�logRequestsr�log_request)r#�code�sizerrrr�>sz&SimpleXMLRPCRequestHandler.log_requestN)r�r�)r(rSrTrdr{ZwbufsizeZdisable_nagle_algorithm�re�compile�VERBOSE�
IGNORECASEr\rcrer�rsrmr�rrrrrU�s	G	rUc@s*eZdZdZdZedddddfdd�ZdS)�SimpleXMLRPCServerTFNcCs,||_t�||||�tj�||||�dS)N)r�rr$�socketserver�	TCPServer)r#�addr�requestHandlerr�r r!�bind_and_activater"rrrr$WszSimpleXMLRPCServer.__init__)r(rSrTZallow_reuse_addressrgrUr$rrrrr�Ds
r�c@s<eZdZedddddfdd�Zdd�Zdd	�Zdd
d�ZdS)
�MultiPathXMLRPCServerTFNc
Cs2t�||||||||�i|_||_|p*d|_dS)Nzutf-8)r�r$�dispatchersr r!)r#r�r�r�r r!r�r"rrrr$hs

zMultiPathXMLRPCServer.__init__cCs||j|<|S)N)r�)r#r8Z
dispatcherrrr�add_dispatcherrs
z$MultiPathXMLRPCServer.add_dispatchercCs
|j|S)N)r�)r#r8rrr�get_dispatchervsz$MultiPathXMLRPCServer.get_dispatchercCs|y|j|�|||�}Wn^t��dd�\}}z2ttdd||f�|j|jd�}|�|jd�}Wdd}}XYnX|S)N�r0z%s:%s)r!r r1)	r�r@r3r4rrr!r r5)r#r6r7r8r;r=r>rrrr@ys
z)MultiPathXMLRPCServer._marshaled_dispatch)NN)r(rSrTrUr$r�r�r@rrrrr�`sr�c@s0eZdZddd�Zdd�Zdd�Zdd	d
�ZdS)
�CGIXMLRPCRequestHandlerFNcCst�||||�dS)N)rr$)r#r r!r"rrrr$�sz CGIXMLRPCRequestHandler.__init__cCsP|�|�}td�tdt|��t�tj��tjj�|�tjj��dS)NzContent-Type: text/xmlzContent-Length: %d)r@�printrqr3�stdout�flush�bufferr~)r#�request_textr;rrr�
handle_xmlrpc�s

z%CGIXMLRPCRequestHandler.handle_xmlrpccCs�d}tj|\}}tjj|||d�}|�d�}td||f�tdtjj�tdt|��t�t	j
��t	j
j�
|�t	j
j��dS)Ni�)r��message�explainzutf-8z
Status: %d %szContent-Type: %szContent-Length: %d)rZ	responses�httprtZDEFAULT_ERROR_MESSAGEr5r�ZDEFAULT_ERROR_CONTENT_TYPErqr3r�r�r�r~)r#r�r�r�r;rrr�
handle_get�s


z"CGIXMLRPCRequestHandler.handle_getc	Csz|dkr$tj�dd�dkr$|��nRyttj�dd��}Wnttfk
rVd}YnX|dkrltj�	|�}|�
|�dS)NZREQUEST_METHODZGETZCONTENT_LENGTHrW)�os�environr[r�rnr��	TypeErrorr3�stdinrpr�)r#r��lengthrrr�handle_request�s

z&CGIXMLRPCRequestHandler.handle_request)FNF)N)r(rSrTr$r�r�r�rrrrr��s
r�c@s:eZdZdiiifdd�Zdiiidfdd�Zdd�ZdS)�
ServerHTMLDocNcCs^|p|j}g}d}t�d�}�x|�||�}	|	s2P|	��\}
}|�||||
���|	��\}}
}}}}|
r�||��dd�}|�d||f�n�|r�dt|�}|�d|||�f�n~|r�dt|�}|�d|||�f�nV|||d�d	k�r|�|�	||||��n(|�r$|�d
|�n|�|�	||��|}q W|�|||d���d�
|�S)NrzM\b((http|ftp)://\S+[\w/]|RFC[- ]?(\d+)|PEP[- ]?(\d+)|(self\.)?((?:\w|\.)+))\b�"z&quot;z<a href="%s">%s</a>z'http://www.rfc-editor.org/rfc/rfc%d.txtz(http://www.python.org/dev/peps/pep-%04d/r0�(zself.<strong>%s</strong>rI)�escaper�r��search�spanrN�groups�replacernZnamelinkrr)r#�textr�r�classesrFrO�here�patternr]�start�end�allZschemeZrfcZpepZselfdotr&Zurlrrr�markup�s8

zServerHTMLDoc.markupcCs�|r
|jpdd|}d}	d|�|�|�|�f}
t|�rHtt|��}nd}t|t�rp|dp`|}|dpld}n
t�|�}|
||	o�|�	d|	�}
|�
||j|||�}|o�d|}d	|
|fS)
NrIr�z$<a name="%s"><strong>%s</strong></a>z(...)rr0z'<font face="helvetica, arial">%s</font>z<dd><tt>%s</tt></dd>z<dl><dt>%s</dt>%s</dl>
)r(r�rrwr	�
isinstance�tuplerJrKZgreyr��	preformat)r#�objectr&�modrr�rFZclZanchorZnote�titleZargspecZ	docstringZdecl�docrrr�
docroutine�s"

zServerHTMLDoc.docroutinec	Cs�i}x,|��D] \}}d|||<||||<qW|�|�}d|}|�|dd�}|�||j|�}	|	old|	}	|d|	}g}
t|���}x&|D]\}}|
�|j|||d��q�W||�ddd	d
�	|
��}|S)Nz#-z)<big><big><strong>%s</strong></big></big>z#ffffffz#7799eez<tt>%s</tt>z
<p>%s</p>
)rZMethodsz#eeaa77rI)
�itemsr��headingr�r�rErNr�Z
bigsectionrr)r#�server_nameZpackage_documentationrFZfdict�key�value�head�resultr��contentsZmethod_itemsrrr�	docservers"
zServerHTMLDoc.docserver)r(rSrTr�r�r�rrrrr��s)r�c@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�XMLRPCDocGeneratorcCsd|_d|_d|_dS)NzXML-RPC Server DocumentationzGThis server exports the following methods through the XML-RPC protocol.)r��server_documentation�server_title)r#rrrr$:szXMLRPCDocGenerator.__init__cCs
||_dS)N)r�)r#r�rrr�set_server_titleBsz#XMLRPCDocGenerator.set_server_titlecCs
||_dS)N)r�)r#r�rrr�set_server_nameGsz"XMLRPCDocGenerator.set_server_namecCs
||_dS)N)r�)r#r�rrr�set_server_documentationLsz+XMLRPCDocGenerator.set_server_documentationc	Cs�i}x�|��D]�}||jkr(|j|}n�|jdk	r�ddg}t|jd�rV|j�|�|d<t|jd�rr|j�|�|d<t|�}|dkr�|}q�t|jd�s�yt|j|�}Wq�tk
r�|}Yq�Xq�|}n|||<qWt	�}|�
|j|j|�}|�
t�|j�|�S)N�_get_method_argstringrrHr0)NNr2)r*rrrDr�rHr�rrr�r�r�r�Zpage�htmlr�r�)r#rFrGr:Zmethod_infoZ
documenterZ
documentationrrr�generate_html_documentationQs8


z.XMLRPCDocGenerator.generate_html_documentationN)r(rSrTr$r�r�r�r�rrrrr�3s
r�c@seZdZdd�ZdS)�DocXMLRPCRequestHandlercCsf|��s|��dS|j���d�}|�d�|�dd�|�dtt|���|�	�|j
�|�dS)Nzutf-8rkzContent-typez	text/htmlzContent-length)rermrtr�r5rurvrwrqrzr}r~)r#r;rrr�do_GET�s
zDocXMLRPCRequestHandler.do_GETN)r(rSrTr�rrrrr��s
r�c@s"eZdZedddddfdd�ZdS)�DocXMLRPCServerTFNc
Cs&t�||||||||�t�|�dS)N)r�r$r�)r#r�r�r�r r!r�r"rrrr$�szDocXMLRPCServer.__init__)r(rSrTr�r$rrrrr��sr�c@seZdZdd�Zdd�ZdS)�DocCGIXMLRPCRequestHandlercCsT|���d�}td�tdt|��t�tj��tjj�|�tjj��dS)Nzutf-8zContent-Type: text/htmlzContent-Length: %d)	r�r5r�rqr3r�r�r�r~)r#r;rrrr��s
z%DocCGIXMLRPCRequestHandler.handle_getcCst�|�t�|�dS)N)r�r$r�)r#rrrr$�s
z#DocCGIXMLRPCRequestHandler.__init__N)r(rSrTr�r$rrrrr��sr��__main__c@s"eZdZdd�ZGdd�d�ZdS)�ExampleServicecCsdS)NZ42r)r#rrr�getData�szExampleService.getDatac@seZdZedd��ZdS)zExampleService.currentTimecCs
tj��S)N)�datetimeZnowrrrr�getCurrentTime�sz)ExampleService.currentTime.getCurrentTimeN)r(rSrT�staticmethodr�rrrr�currentTime�sr�N)r(rSrTr�r�rrrrr��sr�)Z	localhosti@cCs||S)Nr)�x�yrrr�<lambda>�rfr��add)rz&Serving XML-RPC on localhost port 8000zKIt is advisable to run this example server within a secure, closed network.z&
Keyboard interrupt received, exiting.)T)0Z
xmlrpc.clientrrrrrZhttp.serverr�	functoolsr�inspectr	r�r�r�r3r�r�rJrxZfcntl�ImportErrorrrrrUr�r�r�r�ZHTMLDocr�r�r�r�r�r(r�r�rtr'�powr%r/r�Z
serve_forever�KeyboardInterrupt�exitrrrr�<module>ks`

,EbQ
	



Hacked By AnonymousFox1.0, Coded By AnonymousFox