HEX
Server: nginx/1.24.0
System: Linux prod-btpayments-io 6.14.0-1018-aws #18~24.04.1-Ubuntu SMP Mon Nov 24 19:46:27 UTC 2025 x86_64
User: ubuntu (1000)
PHP: 8.3.19
Disabled: NONE
Upload Files
File: //usr/lib/python3/dist-packages/supervisor/__pycache__/xmlrpc.cpython-312.pyc
�

A�c�S����ddlZddlZddlZddlZddlZddlZddlZddlmZddl	m
Z
ddl	mZddl	mZddl	m
Z
ddl	mZddl	mZdd	l	mZdd
l	mZddl	mZddlmZdd
lmZddlmZddlmZGd�d�Zd�ZGd�de�ZGd�d�Zd�Z Gd�d�Z!Gd�de"�Z#Gd�d�Z$d�Z%d�Z&Gd �d!e�Z'd"�Z(Gd#�d$e
jR�Z*Gd%�d&ejV�Z,d'�Z-y)(�N)�	iterparse)�	xmlrpclib)�StringIO)�urlparse)�as_bytes)�	as_string)�encodestring)�decodestring)�httplib)�PY2)�
get_header)�xmlrpc_handler)�	producers)�NOT_DONE_YETc�T�eZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZdZy)�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���3/usr/lib/python3/dist-packages/supervisor/xmlrpc.pyrrs_���N����M����N��H��J��G��N�
�F����K��O��K��G��M��M��Kr;rc�\�tjD]}tt|�|k(s�|cSy)N�UNKNOWN)r�__dict__�getattr)�code�	faultnames  r<�getFaultDescriptionrC.s/���_�_��	��6�9�%��-����r;c��eZdZdd�Zd�Zy)�RPCErrorNc�d�||_t|�|_|�|j�d|��|_yy)Nz: )rArC�text)�selfrA�extras   r<�__init__zRPCError.__init__5s0����	�'��-��	���$(�I�I�u�5�D�I�r;c�:�d|j�d|j��S)Nzcode=z, text=)rArG�rHs r<�__str__zRPCError.__str__;s��%)�Y�Y��	�	�:�:r;�N)r%r&r'rJrMr:r;r<rErE4s��6�;r;rEc�\�eZdZdZej
dej�Zd�Zd�Z	d�Z
y)�DeferredXMLRPCResponsez� A medusa producer that implements a deferred callback; requires
    a subclass of asynchat.async_chat that handles NOT_DONE_YET sentinel zConnection: (.*)c�b�||_||_d|_t|j�|_y)NF)�callback�request�finished�float�delay)rHrSrRs   r<rJzDeferredXMLRPCResponse.__init__Cs'�� ��
������
��8�>�>�*��
r;c��|jry		|j�}|turtS	t|�}d|_|j|�S#t$r4}t	j
|j|j�}Yd}~�[d}~wwxYw#tj�}|jjjjj!d|�d|_|jj#d�YyxYw)N�TzXML-RPC response callback error��)rTrRrrEr�FaultrArG�xmlrpc_marshal�getresponse�	traceback�
format_excrS�channel�server�logger�log�error)rH�value�err�body�tbs     r<�morezDeferredXMLRPCResponse.moreIs����=�=��	$�
<��
�
����L�(�'�'�)�
"�%�(�D� �D�M��#�#�D�)�)���
<�!������#�(�(�;���
<��	$��%�%�'�B��L�L� � �'�'�.�.�2�2�1�2�
�!�D�M��L�L���s�#�s/�A�#B�	B�*B
�B�
B�B�A2Dc��d|jd<t|�|jd<|jj|�t|j|jj
�}d}|jjdk(r|dk(rd|jd<n<d	}n9|jjd
k(r|dk(rd	}n|jj�d	}tj|jj��}|rd|jd<|jjjd|�tj|jj�}|jjjtjtj ||jj"���d|jj_|r%|jjj'�yy)N�text/xml�Content-Type�Content-Lengthrz1.0z
keep-alivez
Keep-Alive�
Connectionrz1.1�close)rS�len�pushr
�
CONNECTION�header�versionr�simple_producer�build_reply_header�outgoing�insert�composite_producerr_�push_with_producer�globbing_producer�hooked_producerrb�current_request�close_when_done)rHrf�
connection�close_it�outgoing_header�outgoing_producers      r<r\z"DeferredXMLRPCResponse.getresponsebs���'1����^�$�),�T�����%�&������$���������1D�1D�E�
����<�<���5�(��\�)�-9����\�*���
�\�\�
!�
!�U�
*��W�$���
�\�\�
!�
!�
)��H�#�3�3��L�L�+�+�-�/���)0�D�L�L��&�	
�����$�$�Q��8�%�8�8����9N�9N�O��	
�����/�/��+�+�!�1�1� 1� $��� 0� 0�"��		�04������,���L�L� � �0�0�2�r;N)r%r&r'�__doc__�re�compile�
IGNORECASErqrJrhr\r:r;r<rPrP>s.��M�����/����?�J�+�$�2,3r;rPc���t|tj�}|r,t|t�s|f}tj||��}|Stj|�}|S)N)�methodresponse)�
isinstancerrZ�tuple�dumps)rd�ismethodresponserfs   r<r[r[�sW��%�e�Y�_�_�=�=����%��'��H�E����u�5E�F���K����u�%���Kr;c�0�eZdZd�Zd�Zd�Zd�Zd�Zd�Zy)�SystemNamespaceRPCInterfacec�b�i|_|D]\}}||j|<�||jd<y)N�system)�
namespaces)rHr��name�insts    r<rJz$SystemNamespaceRPCInterface.__init__�s8�����$�	)�J�D�$�$(�D�O�O�D�!�	)�$(�����!r;c��i}|jD]u}|j|}|jjD]K}t||�}t	|�s�|jd�r�-|�d|��}t
|j�||<�M�w|S)N�_�.)r��	__class__r?r@�callable�
startswith�strr�)rH�methods�ns_name�	namespace�method_name�func�sigs       r<�_listMethodsz(SystemNamespaceRPCInterface._listMethods�s��������		9�G�����0�I�(�2�2�;�;�
9���y�+�6���D�>�&�1�1�#�6�)0�+�>��'*�4�<�<�'8����
9�		9��r;c�x�|j�}t|j��}|j�|S)z� Return an array listing the available method names

        @return array result  An array of method names available (strings).
        )r��list�keys�sort)rHr�r�s   r<�listMethodsz'SystemNamespaceRPCInterface.listMethods�s0��
�#�#�%���G�L�L�N�#���	�	���r;c��|j�}|j�D]}||k(s�	||cSttj��)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�rErr+)rHr�r��
methodnames    r<�
methodHelpz&SystemNamespaceRPCInterface.methodHelp�sM���#�#�%��!�,�,�.�	+�J��T�!��z�*�*�	+��v�3�3�4�4r;c�:�|j�}|D]n}||k(s�	d}g}t||�}|D]-}|ddk(r|d}�|ddk(s�|j|d��/|�ttj
��|g|zcSttj
��)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�appendrErr+)rHr�r��method�rtype�ptypes�parsed�things        r<�methodSignaturez+SystemNamespaceRPCInterface.methodSignature�s����#�#�%���	(�F���~����� ����1��#�0�E��Q�x�8�+� %�a����q��W�,��
�
�e�A�h�/�	0�
�=�"�6�#?�#?�@�@��w��'�'�	(��v�3�3�4�4r;c�\��|dd}g}g}|||f�fd�	}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����|r5	|d�}|tur"|jd�|j|�|s�|r�|jd�}|jdd�}|jdg�}		|�tt
jd��|d	k(rtt
jd
��t�j�}
t|
||	�}t|t j"�r|j|�n|j|�|s|r��|s|rtS|S#t$r$}|j|jd�}Yd}~��7d}~wtj�}|d�d|d��}t
jd|zd�}Y��vxYw#t$r#}|j|jd�}Yd}~��d}~wtj�}|d�d|d��}t
jd|zd�}Y��xYw)Nr)�	faultCode�faultString�:rzFAILED: �
methodName�paramsz
No methodNamezsystem.multicallz$Recursive system.multicall forbidden)rErArG�sys�exc_inforr1r�popr��getr)�AttrDictr��traverser��types�FunctionType)�remaining_calls�	callbacks�resultsrd�exc�info�errmsg�callr�r��rootrHs           �r<�multiz4SystemNamespaceRPCInterface.multicall.<locals>.multi�s����
�	A�(�I�a�L�N�E���,��M�M�!�$��N�N�5�)�!�o�&�*�*�1�-���x�x��d�3�����(�B�/��A��|�&�v�'B�'B�+�-�-��1�1�&�v�'B�'B�B�D�D�$�D�O�O�4�D�$�T�4��8�E��e�U�%7�%7�8��$�$�U�+��N�N�5�)�7!�o�<�O�#�#����_ �6�*-�(�(�,/�H�H�6�E��A��<�<�>�D�(,�Q���a��9�F�*0�-�-�,6��,?�A�E��. �6�*-�(�(�,/�H�H�6�E��A��<�<�>�D�(,�Q���a��9�F�*0�-�-�,6��,?�A�E�s0�
D�3AF�	F�'E�<F�	G.�F/�/<G.g�������?)rVr)rH�callsr�r�r�r�rds`      r<�	multicallz%SystemNamespaceRPCInterface.multicall�sM��� ��(���	���#2�%�!�7	�p�������L� ��L��Lr;N)	r%r&r'rJr�r�r�r�r�r:r;r<r�r��s!��)���
5�5�2Qr;r�c��eZdZd�Zy)r�c�$�|j|�SrN)r�)rHr�s  r<�__getattr__zAttrDict.__getattr__3s���x�x��~�r;N)r%r&r'r�r:r;r<r�r�1s��r;r�c��eZdZd�Zy)�RootRPCInterfacec�2�|D]\}}t|||��yrN)�setattr)rH�
subinterfacesr��rpcinterfaces    r<rJzRootRPCInterface.__init__7s"��"/�	.��D�,��D�$��-�	.r;N)r%r&r'rJr:r;r<r�r�6s��.r;r�c��t|�}|tjkrtj}|S|tjkDrtj}|SrN)�intr�MININT�MAXINT)rd�is  r<�
capped_intr�;sK���E�
�A��9��������
�H�
�Y�
�
�	������Hr;c�T�tjtj|d�dd�S)Nz%Y%m%dT%H:%M:%Sr)�datetime�time�strptime�rGs r<�
make_datetimer�Cs+�����	
���t�.�	/���	3��r;c�d�eZdZdZdZd�d�d�d�d�d�d	�d
�d�d�d
�d�Zd�Zd�Zd�Zd�Z	d�Z
y)�supervisor_xmlrpc_handlerz/RPC2zSupervisor XML-RPC Handlerc�,�t|j�SrN�r�rG��xs r<�<lambda>z"supervisor_xmlrpc_handler.<lambda>Ms���Q�V�V��r;c�,�t|j�SrNr�r�s r<r�z"supervisor_xmlrpc_handler.<lambda>Ns���A�F�F��r;c� �|jdk(S)N�1r�r�s r<r�z"supervisor_xmlrpc_handler.<lambda>Os��Q�V�V�s�]�r;c�"�|jxsdS�NrXr�r�s r<r�z"supervisor_xmlrpc_handler.<lambda>Ps��A�F�F�L�b�r;c�,�t|j�SrN)rUrGr�s r<r�z"supervisor_xmlrpc_handler.<lambda>Qs��E�!�&�&�M�r;c�,�t|j�SrN)r�rGr�s r<r�z"supervisor_xmlrpc_handler.<lambda>Rs��m�A�F�F�&;�r;c� �|djS�Nrr�r�s r<r�z"supervisor_xmlrpc_handler.<lambda>S���1�Q�4�9�9�r;c�@�|D�cgc]}|j��c}Scc}wrNr�)r��vs  r<r�z"supervisor_xmlrpc_handler.<lambda>Ts��1�-�a�1�6�6�-���-s�c�~�t|D��cgc]!\}}|jxsd|jf��#c}}�Scc}}wr�)�dictrG)r��kr�s   r<r�z"supervisor_xmlrpc_handler.<lambda>Us.��D�Q�!G�T�Q��1�6�6�<�R����"8�!G�H���!Gs�&9
c�X�ttt|jxsd���Sr�)rr
rrGr�s r<r�z"supervisor_xmlrpc_handler.<lambda>Vs��I�l�8�A�F�F�L�b�3I�&J�K�r;c� �|djSr�r�r�s r<r�z"supervisor_xmlrpc_handler.<lambda>Wr�r;)r��i4�boolean�string�doublezdateTime.iso8601�array�data�struct�base64r�c�2�t|�|_||_yrN)r�r��supervisord)rHrr�s   r<rJz"supervisor_xmlrpc_handler.__init__Zs��,�]�;���&��r;c�,�dx}}tt|��D]�\}}|jj|j�}|r ||�}|j�||_�M|jdk(r(	|dj}|j�||_��|jdk(r
|j}��|jdk(s��t|D�cgc]}|j��c}�}��||fS#t$r|jxsd}Y��wxYwcc}w)NrdrrXr�r�)	rr�
unmarshallersr��tag�clearrG�
IndexErrorr�)rHrr�r��action�elem�
unmarshallr�s        r<�loadszsupervisor_xmlrpc_handler.loads^s�������%�h�t�n�5�	7�L�F�D��+�+�/�/����9�J��!�$�'���
�
�� ��	����W�$�+���7�<�<�D��
�
�� ��	����\�)��������X�%���5�1����5�6��!	7�"�v�~���"�+��9�9�?��D�+�� 6s�6C2�D
�2D�
Dc�L�|jj|j�SrN)�urir��path)rHrSs  r<�matchzsupervisor_xmlrpc_handler.matchss���{�{�%�%�d�i�i�0�0r;c�>�|jjj}		tr|j	dd�}|j|�\}}|s'|j
d|�d��|j
d�y|�d}	|jd|z�|j||�}|jd	|z�t|tj �r)|j"j$}|t'||��yt)t+|��}	d|d<t-|	�|d
<|j/|	�|j1�y#|j
d|�d��|j
d�YyxYw#t$r`}tj|j|j�}|jd
||j|jfz�Yd}~��d}~wwxYw#t3j4�}
|j7d|�d|
���|j
d�YyxYw)N�ascii�xmlcharrefreplacezXML-RPC request data z is invalid: unmarshallablei�z is invalid: no method namer:zXML-RPC method called: %s()z)XML-RPC method %s() returned successfullyz+XML-RPC method %s() returned fault: [%d] %srjrkrlz#Handling XML-RPC request with data z! raised an unexpected exception: rY)r�optionsrar�encoder
rc�tracer�rErrZrArGr�r�r�r_ryrPrr[rorp�doner]r^�critical)rHrrSrar�r�rdre�pushproducerrfrgs           r<�continue_requestz*supervisor_xmlrpc_handler.continue_requestvs����!�!�)�)�0�0��B	�
�
��;�;�w�0C�D�D�!%���D�!1������������
�
�c�"���~���

)����:�V�C�D��	�	�&�&�1�����H�#�$�%��%��!3�!3�4� '���A�A���3�G�U�C�D� ��u� 5�6��*4���'�,/��I��(�)����T�"������a
��������
�
�c�"���*�
)�!������#�(�(�;�����J���H�H�c�h�h�N(�(�)�)��
)��.	��%�%�'�B��O�O�#'��-�
�

�M�M�#��s\�,E�(G�8G�=:E0�7AG�:AG�(E-�+G�-G�0	G�9AG�G�G�G�>Hc�0�t|j||�SrN)r�r�)rHr�r�s   r<r�zsupervisor_xmlrpc_handler.call�s����)�)�6�6�:�:r;N)r%r&r'r�IDENTrrJr
rrr�r:r;r<r�r�HsQ���D�(�E�%�#�*�(�)�;�$�-�H�K�$�
�M�'��*1�E�N;r;r�c��|jd�}t|�dk7rttj��|\}}|jd�rttj��t
||d�}|�ttj��t
||d�}t|tj�sttj��	||�S#t$rttj��wxYw)Nr�rr�)�splitrorErr(r�r@r�r��
MethodType�	TypeErrorr))�obr�r��dotted_partsr�r�r�s       r<r�r��s����<�<��$�L�
�<��A���v�,�,�-�-�$��I�v�������v�,�,�-�-��2�y�$�/�L����v�,�,�-�-��<���.�D��d�E�,�,�-��v�,�,�-�-�4��V�}����4��v�2�2�3�3�4�s�C�#C9c�*�eZdZdZdZdd�Zd�Zdd�Zy)�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�p�tjj|�||_||_d|_||_|jd�r?tj|�}|j|j}}|�d}||fd�}||_y|jd�r
|fd�}||_ytd|z��)NFzhttp://r!c�.�tj||�SrN)r�HTTPConnection)�host�ports  r<�get_connectionz4SupervisorTransport.__init__.<locals>.get_connection�s���-�-�d�D�9�9r;zunix://c�0�td�}|dd|_|S)N�	localhost�)�UnixStreamHTTPConnection�
socketfile)�	serverurl�conns  r<r+z4SupervisorTransport.__init__.<locals>.get_connection�s ��0��<��"+�A�B�-����r;z!Unknown protocol for serverurl %s)
r�	TransportrJ�username�password�verboser1r�r�hostnamer*�_get_connection�
ValueError)rHr4r5r1r�r)r*r+s        r<rJzSupervisorTransport.__init__�s������$�$�T�*� ��
� ��
����"������	�*��&�&�y�1�F����&�+�+�$�D��|���$(�t�
:�#1�D� �
�
!�
!�)�
,�)2�
�$2�D� ��@�9�L�M�Mr;c�`�|jr"|jj�d|_yyrN)r~rnrLs r<rnzSupervisorTransport.close�s%���?�?��O�O�!�!�#�"�D�O�r;c��t|�}|js�|j�|_|jddd�|_|j
�z|j�n|j
�d|j��}ttt|���}|jdd�}|jdd�}d|z|jd<tt|��|jd<|jjd	|||j�|jj�}|jd
k7rP|jj�d|_t!j"||z|j|j$d��|j'�}t|�}|j)dd�}|j+�\}	}
|	j-|�|	j�|
j�S)
Nrj)z
User-Agentrk�Acceptr��
rXzBasic %s�
Authorizationrl�POST��rr)rr~r8�
user_agent�headersr4r5rr	�replacer�rorSr\�statusrnr�
ProtocolError�reason�readr�	getparser�feed)rHr)�handler�request_bodyr6�	unencoded�encoded�rr�p�us           r<rSzSupervisorTransport.requests�����-�����"�2�2�4�D�O�#���!+�$��D�L��}�}�(�T�]�]�-F�'+�}�}�d�m�m�D�	�#�L��)�1D�$E�F��!�/�/�$��3��!�/�/�&�"�5��0:�W�0D����_�-�),�S��->�)?����%�&���������t�|�|�L��O�O�'�'�)���8�8�s�?��O�O�!�!�#�"�D�O��)�)�$��.�*+�(�(�*+�(�(�*,�/�
/��v�v�x�������{�{�7�$7�8���~�~����1�	���t��	���	��w�w�y�r;)NNN)r)r%r&r'r�r~rJrnrSr:r;r<r%r%�s����J�N�2#�
'r;r%c��eZdZd�Zy)r/c��tjtjtj�|_|jj	|j
�yrN)�socket�AF_UNIX�SOCK_STREAM�sock�connectr0rLs r<rWz UnixStreamHTTPConnection.connect*s4���M�M�&�.�.�&�2D�2D�E��	��	�	���$�/�/�*r;N)r%r&r'rWr:r;r<r/r/)s��+r;r/c
�v�g}d}d}d}dx}}g}|jd�D]�}|j�}|jd�r�|j||||dj	|�f�|jdd�}	t|	�dk(rd}d}g}n_t|	�dk(r
|	d}d}g}nGt|	�dk(r
|	d}|	d}g}n,t|	�d	k(r|	d}|	d}|	dj
�g}|	ddd}|}n|r|j|�|dz
}��|j||||dj	|�f�|S)
z6 Parse documentation strings into JavaDoc-like tokens Nrr=�@rrrXrr)r�stripr�r��joinro�lstrip)
�comment�tagsr�datatyper��
tag_lineno�lineno�tag_text�line�partss
          r<r�r�/sc���D�
�C��H��D���J���H��
�
�d�#����z�z�|���?�?�3���K�K��S�(�D�$�)�)�H�:M�N�O��J�J�t�Q�'�E��5�z�Q���������U��q�� ��8�������U��q�� ��8���Q�x�����U��q�� ��8���Q�x��!�!�H�O�O�-�.����(�1�2�,�C��J������%��!���5�8	�K�K��S�(�D�$�)�)�H�2E�F�G��Kr;).r�r�rSr�r�r]r��xml.etree.ElementTreer�supervisor.compatrrrrrr	r
rr�supervisor.medusa.http_serverr
� supervisor.medusa.xmlrpc_handlerr�supervisor.medusar�supervisor.httprrrC�	ExceptionrErPr[r�r�r�r�r�r�r�r�r3r%r(r/r�r:r;r<�<module>rls����	�
�
����+�'�&�&�&�'�*�*�%�!�4�;�'�(���(�;�y�;�P3�P3�d�U�U�n�t��
.�.�

��
v;��v;�p4�2N�)�-�-�N�`+�w�5�5�+�)r;