GOOD SHELL MAS BOY
Server: Apache/2.4.52 (Ubuntu)
System: Linux vmi1836763.contaboserver.net 5.15.0-130-generic #140-Ubuntu SMP Wed Dec 18 17:59:53 UTC 2024 x86_64
User: www-data (33)
PHP: 8.4.10
Disabled: NONE
Upload Files
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