CasperSecurity

Current Path : /lib/python3/dist-packages/supervisor/__pycache__/
Upload File :
Current File : //lib/python3/dist-packages/supervisor/__pycache__/xmlrpc.cpython-310.pyc

o

*�]T�@s�ddlZddlZddlZddlZddlZddlZddlZddlmZddl	m
Z
ddl	mZddl	mZddl	m
Z
ddl	mZddl	mZdd	l	mZdd
l	mZddl	mZddlmZdd
lmZddlmZddlmZGdd�d�Zdd�ZGdd�de�ZGdd�d�Zdd�Z Gdd�d�Z!Gdd�de"�Z#Gdd�d�Z$d d!�Z%d"d#�Z&Gd$d%�d%e�Z'd&d'�Z(Gd(d)�d)e
j)�Z*Gd*d+�d+ej+�Z,d,d-�Z-dS).�N)�	iterparse)�	xmlrpclib)�StringIO)�urllib)�as_bytes)�	as_string)�encodestring)�decodestring)�httplib)�PY2)�
get_header)�xmlrpc_handler)�	producers)�NOT_DONE_YETc@sTeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZdZdS)�Faults������
�����(�2�<�F�P�Z�[�\N)�__name__�
__module__�__qualname__�UNKNOWN_METHOD�INCORRECT_PARAMETERS�
BAD_ARGUMENTS�SIGNATURE_UNSUPPORTED�SHUTDOWN_STATE�BAD_NAME�
BAD_SIGNAL�NO_FILE�NOT_EXECUTABLE�FAILED�ABNORMAL_TERMINATION�SPAWN_ERROR�ALREADY_STARTED�NOT_RUNNING�SUCCESS�
ALREADY_ADDED�
STILL_RUNNING�CANT_REREAD�r8r8�3/usr/lib/python3/dist-packages/supervisor/xmlrpc.pyrs&rcCs&tjD]
}tt|�|kr|SqdS)N�UNKNOWN)r�__dict__�getattr)�code�	faultnamer8r8r9�getFaultDescription.s

�r?c@seZdZddd�Zdd�ZdS)�RPCErrorNcCs0||_t|�|_|durd|j|f|_dSdS)Nz%s: %s)r=r?�text)�selfr=�extrar8r8r9�__init__5s

�zRPCError.__init__cCsd|j|jfS)Nzcode=%r, text=%r)r=rA�rBr8r8r9�__str__;szRPCError.__str__�N)r#r$r%rDrFr8r8r8r9r@4s
r@c@s6eZdZdZe�dej�Zdd�Zdd�Z	dd�Z
d	S)
�DeferredXMLRPCResponsez� A medusa producer that implements a deferred callback; requires
    a subclass of asynchat.async_chat that handles NOT_DONE_YET sentinel zConnection: (.*)cCs"||_||_d|_t|j�|_dS)NF)�callback�request�finished�float�delay)rBrJrIr8r8r9rDCszDeferredXMLRPCResponse.__init__c
Cs�|jrdSz6z|��}|turtWWSWnty.}zt�|j|j�}WYd}~nd}~wwt|�}d|_|�	|�WSt
��}|jj
jj�d|�d|_|j�d�YdS)N�TzXML-RPC response callback error��)rKrIrr@r�Faultr=rA�xmlrpc_marshal�getresponse�	traceback�
format_excrJ�channel�server�logger�log�error)rB�value�err�body�tbr8r8r9�moreIs,����zDeferredXMLRPCResponse.morecCsd|jd<t|�|jd<|j�|�t|j|jj�}d}|jjdkr/|dkr,d|jd<nd	}n|jjd
kr<|dkr;d	}n|jjdurDd	}t�|j�	��}|rSd|jd<|jj
�d|�t�|jj
�}|jj
�t�t�||jj���d|jj
_|r�|jj
��dSdS)N�text/xml�Content-Type�Content-Lengthrz1.0z
keep-alivez
Keep-Alive�
Connectionrz1.1�close)rJ�len�pushr�
CONNECTION�header�versionr�simple_producer�build_reply_header�outgoing�insert�composite_producerrU�push_with_producer�globbing_producer�hooked_producerrX�current_request�close_when_done)rBr\�
connection�close_it�outgoing_header�outgoing_producerr8r8r9rRbsD
��
���
�z"DeferredXMLRPCResponse.getresponseN)r#r$r%�__doc__�re�compile�
IGNORECASErfrDr^rRr8r8r8r9rH>srHcCsBt|tj�}|rt|t�s|f}tj||d�}|St�|�}|S)N)�methodresponse)�
isinstancerrP�tuple�dumps)rZ�ismethodresponser\r8r8r9rQ�s

�rQc@s<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�SystemNamespaceRPCInterfacecCs,i|_|D]	\}}||j|<q||jd<dS)N�system)�
namespaces)rBr��name�instr8r8r9rD�sz$SystemNamespaceRPCInterface.__init__cCsbi}|jD])}|j|}|jjD]}t||�}t|�r-|�d�s-d||f}t|j�||<qq|S)N�_z%s.%s)r��	__class__r;r<�callable�
startswith�strrw)rB�methods�ns_name�	namespace�method_name�func�sigr8r8r9�_listMethods�s



��z(SystemNamespaceRPCInterface._listMethodscCs |��}t|���}|��|S)z� Return an array listing the available method names

        @return array result  An array of method names available (strings).
        )r��list�keys�sort)rBr�r�r8r8r9�listMethods�sz'SystemNamespaceRPCInterface.listMethodscCs4|��}|��D]}||kr||Sqttj��)z� Return a string showing the method's documentation

        @param string name   The name of the method.
        @return string result The documentation for the method name.
        )r�r�r@rr))rBr�r��
methodnamer8r8r9�
methodHelp�s�
z&SystemNamespaceRPCInterface.methodHelpcCs�|��}|D]=}||krCd}g}t||�}|D]}|ddkr%|d}q|ddkr2|�|d�q|dur<ttj��|g|Sqttj��)ab Return an array describing the method signature in the
        form [rtype, ptype, ptype...] where rtype is the return data type
        of the method, and ptypes are the parameter data types that the
        method accepts in method argument order.

        @param string name  The name of the method.
        @return array result  The result.
        Nr�returnr�param)r��gettags�appendr@rr))rBr�r��method�rtype�ptypes�parsed�thingr8r8r9�methodSignature�s"	
�
�
z+SystemNamespaceRPCInterface.methodSignaturecsD|dd�}g}g}|||f�fdd�	}d|_|�}|tur |S|S)aProcess an array of calls, and return an array of
        results. Calls should be structs of the form {'methodName':
        string, 'params': array}. Each result will either be a
        single-item array containing the result value, or a struct of
        the form {'faultCode': int, 'faultString': string}. This is
        useful when you need to make lots of small calls without lots
        of round trips.

        @param array calls  An array of call requests
        @return array result  An array of results
        Nc
s�|rJz|d�}Wn2ty"}z
|j|jd�}WYd}~nd}~wt��}d|d|df}tjd|d�}Y|turJ|�d�|�	|�|s�|r�|�d�}|�
dd�}|�
dg�}	z!|durjttjd��|d	krtttjd
��t�j
�}
t|
||	�}Wn2ty�}z
|j|jd�}WYd}~nd}~wt��}d|d|df}tjd|d�}Yt|tj�r�|�	|�n|�	|�|s�|sN|s�|r�tS|S)Nr)�	faultCode�faultString�%s:%srzFAILED: �
methodName�paramsz
No methodNamezsystem.multicallz$Recursive system.multicall forbidden)r@r=rA�sys�exc_inforr/r�popr��getr'�AttrDictr��traverser|�types�FunctionType)�remaining_calls�	callbacks�resultsrZ�exc�info�errmsg�callr�r��rootrEr8r9�multi�sd���


��
���
�z4SystemNamespaceRPCInterface.multicall.<locals>.multig�������?)rMr)rB�callsr�r�r�r�rZr8rEr9�	multicall�s�8z%SystemNamespaceRPCInterface.multicallN)	r#r$r%rDr�r�r�r�r�r8r8r8r9r��s
r�c@�eZdZdd�ZdS)r�cCs
|�|�SrG)r�)rBr�r8r8r9�__getattr__3s
zAttrDict.__getattr__N)r#r$r%r�r8r8r8r9r�1sr�c@r�)�RootRPCInterfacecCs|D]
\}}t|||�qdSrG)�setattr)rB�
subinterfacesr��rpcinterfacer8r8r9rD7s�zRootRPCInterface.__init__N)r#r$r%rDr8r8r8r9r�6�r�cCs0t|�}|tjkrtj}|S|tjkrtj}|SrG)�intr�MININT�MAXINT)rZ�ir8r8r9�
capped_int;s

�r�cCstjt�|d�dd��S)Nz%Y%m%dT%H:%M:%Sr)�datetime�time�strptime�rAr8r8r9�
make_datetimeCs�r�c@s�eZdZdZdZdd�dd�dd�dd�dd�d	d�d
d�dd�dd�d
d�dd�d�Zdd�Zdd�Zdd�Zdd�Z	dd�Z
dS)�supervisor_xmlrpc_handlerz/RPC2zSupervisor XML-RPC HandlercC�
t|j�SrG�r�rA��xr8r8r9�<lambda>M�
z"supervisor_xmlrpc_handler.<lambda>cCr�rGr�r�r8r8r9r�Nr�cCs
|jdkS)N�1r�r�r8r8r9r�Or�cCs
|jpdS�NrNr�r�r8r8r9r�Pr�cCr�rG)rLrAr�r8r8r9r�Qr�cCr�rG)r�rAr�r8r8r9r�Rr�cC�
|djS�Nrr�r�r8r8r9r�Sr�cCsdd�|D�S)NcS�g|]}|j�qSr8r���.0�vr8r8r9�
<listcomp>T��6supervisor_xmlrpc_handler.<lambda>.<locals>.<listcomp>r8r�r8r8r9r�TscCstdd�|D��S)NcSs g|]\}}|jp
d|jf�qS)rNr�)r��kr�r8r8r9r�Us r�)�dictr�r8r8r9r�Ur�cCsttt|jpd���Sr�)rr	rrAr�r8r8r9r�VscCr�r�r�r�r8r8r9r�Wr�)r��i4�boolean�string�doublezdateTime.iso8601�array�data�struct�base64r�cCst|�|_||_dSrG)r�r��supervisord)rBr�r�r8r8r9rDZs

z"supervisor_xmlrpc_handler.__init__c	Cs�d}}tt|��D]S\}}|j�|j�}|r#||�}|��||_q
|jdkrFz|dj}Wnty=|jp:d}Ynw|��||_q
|jdkrO|j}q
|jdkr]tdd�|D��}q
||fS)NrZrrNr�r�cSr�r8r�r�r8r8r9r�pr�z3supervisor_xmlrpc_handler.loads.<locals>.<listcomp>)	rr�
unmarshallersr��tag�clearrA�
IndexErrorr})rBr�r�r��action�elem�
unmarshallr8r8r9�loads^s*
�

�zsupervisor_xmlrpc_handler.loadscCs|j�|j�SrG)�urir��path)rBrJr8r8r9�matchs�zsupervisor_xmlrpc_handler.matchc
Cs�|jjj}z�ztr|�dd�}|�|�\}}Wn|�d|f�|�d�YWdS|s>|�d|f�|�d�WdS|durDd}z|�d|�|�||�}|�d|�Wn&t	y�}zt
�|j|j
�}|�d	||j|j
f�WYd}~nd}~wwt|tj�r�|jj}|t||��WdStt|��}	d
|d<t|	�|d<|�|	�|��WdSt��}
|�d
||
f�|�d�YdS)N�ascii�xmlcharrefreplacez2XML-RPC request data %r is invalid: unmarshallablei�z2XML-RPC request data %r is invalid: no method namer8zXML-RPC method called: %s()z)XML-RPC method %s() returned successfullyz+XML-RPC method %s() returned fault: [%d] %sr_r`razHHandling XML-RPC request with data %r raised an unexpected exception: %srO)r��optionsrWr�encoder�rY�tracer�r@rrPr=rAr|r�r�rUrnrHrrQrdre�donerSrT�critical)rBr�rJrWr�r�rZr[�pushproducerr\r]r8r8r9�continue_requestvsl
��
��

����
��z*supervisor_xmlrpc_handler.continue_requestcCst|j||�SrG)r�r�)rBr�r�r8r8r9r��r�zsupervisor_xmlrpc_handler.callN)r#r$r%r��IDENTr�rDr�r�r�r�r8r8r8r9r�Hs(�Gr�cCs�|�d�}t|�dkrttj��|\}}|�d�rttj��t||d�}|dur-ttj��t||d�}t|tj	�s>ttj��z||�WSt
yOttj��w)N�.rr�)�splitrdr@rr&r�r<r|r��
MethodType�	TypeErrorr')�obr�r��dotted_partsr�r�r�r8r8r9r��s"







�r�c@s0eZdZdZdZd
dd�Zdd�Zddd	�ZdS)�SupervisorTransportz�
    Provides a Transport for xmlrpclib that uses
    httplib.HTTPConnection in order to support persistent
    connections.  Also support basic auth and UNIX domain socket
    servers.
    Nc
Cs�tj�|�||_||_d|_||_|�d�rCt�	|�\}}t�
|�\}}t�|�\}}|dur3d}nt|�}||fdd�}	|	|_
dS|�d�rS|fdd�}	|	|_
dStd|��)	NFzhttp://rcSst�||�SrG)r
�HTTPConnection)�host�portr8r8r9�get_connection�sz4SupervisorTransport.__init__.<locals>.get_connectionzunix://cSstd�}|dd�|_|S)N�	localhost�)�UnixStreamHTTPConnection�
socketfile)�	serverurl�connr8r8r9r�sz!Unknown protocol for serverurl %s)r�	TransportrD�username�password�verboserr�r�	splittype�	splithost�	splitportr��_get_connection�
ValueError)
rBrrr�typer�rr�rrr8r8r9rD�s$



zSupervisorTransport.__init__cCs|jr
|j��d|_dSdSrG)rsrcrEr8r8r9rc�s

�zSupervisorTransport.closercCs&t|�}|jsA|��|_|jddd�|_|jdurA|jdurAd|j|jf}ttt|���}|�	dd�}|�	dd�}d||jd<t
t|��|jd<|j�d	|||j�|j�
�}|jd
krr|j��d|_t�|||j|jd��|��}t|�}|�dd�}|��\}	}
|	�|�|	��|
��S)
Nr_)z
User-Agentr`�Acceptr��
rNzBasic %s�
Authorizationra�POST��r�r�)rrsr�
user_agent�headersrrrr�replacer�rdrJrR�statusrcr�
ProtocolError�reason�readr��	getparser�feed)rBr�handler�request_bodyr�	unencoded�encoded�rr��p�ur8r8r9rJs>
�



�
zSupervisorTransport.request)NNN)r)r#r$r%rwrsrDrcrJr8r8r8r9r�s
rc@r�)r
cCs$t�tjtj�|_|j�|j�dSrG)�socket�AF_UNIX�SOCK_STREAM�sock�connectrrEr8r8r9r1-sz UnixStreamHTTPConnection.connectN)r#r$r%r1r8r8r8r9r
,r�r
c

Cs2g}d}d}d}d}}g}|�d�D]v}|��}|�d�r~|�||||d�|�f�|�dd�}	t|	�dkr>d}d}g}n5t|	�dkrM|	d}d}g}n&t|	�dkr^|	d}|	d}g}nt|	�d	krs|	d}|	d}|	d��g}|	ddd�}|}n|r�|�|�|d7}q|�||||d�|�f�|S)
z6 Parse documentation strings into JavaDoc-like tokens Nrr�@rrrNrr)r��stripr�r��joinrd�lstrip)
�comment�tagsr��datatyper��
tag_lineno�lineno�tag_text�line�partsr8r8r9r�2sD


r�).r�rxr-r�r�rSr��xml.etree.ElementTreer�supervisor.compatrrrrrrr	r
r�supervisor.medusa.http_serverr� supervisor.medusa.xmlrpc_handlerr
�supervisor.medusar�supervisor.httprrr?�	Exceptionr@rHrQr�r�r�r�r�r�r�r�rrrr
r�r8r8r8r9�<module>sJ
R
xS
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY