HEX
Server: LiteSpeed
System: Linux cluster02.load-balancer.x2.network 4.18.0-553.51.1.lve.1.el8.x86_64 #1 SMP Wed May 14 14:34:57 UTC 2025 x86_64
User: kbdhpghp (1098)
PHP: 8.2.29
Disabled: NONE
Upload Files
File: //opt/cloudlinux/venv/lib64/python3.11/site-packages/xray/__pycache__/user_agent.cpython-311.pyc
�

���g��
�N�dZddlZddlZddlZddlZddlmZmZddlm	Z	ddl
mZmZddl
mZmZddlmZddlmZdd	lmZmZmZmZmZdd
lmZmZmZddlm Z ej!d��Z"d
e	e#e#ffd�Z$de#d
e%fd�Z&de#d
e#fd�Z'de(de%ded
e	e#e#ffd�Z)dd�Z*dd�Z+dS)z@
This module contains X-Ray User Manager service implementation
�N)�Thread�current_thread)�Tuple)�
get_runner�Runner)�user_agent_sock�user_agent_log)�	XRayError)�gettext)�unpack_request�
pack_response�
extract_creds�check_for_root�error_response)�
create_socket�read_sys_id�configure_logging)�get_locale_from_envars�
user_agent�returnc�f�td��}t|�����dfS)zN
    General format of message in case of errors during manager execution
    z[X-Ray User Plugin failed to execute your request. Please, contact your server administrator�)�_r�encode)�_errs �F/opt/cloudlinux/venv/lib64/python3.11/site-packages/xray/user_agent.py�general_exec_errorr#s1��
�
j�k�k�D��$���&�&�(�(�#�-�-r�orig_msgc�R�tjdd|�����S)zL
    Cut data field from the original message, because it could be huge
    z(?<="data": {).+(?=}, "result")z...)�re�sub�decode)rs r�log_truncater#+s#���6�3�U�H�O�O�<M�<M�N�N�Nrc�4�d�}tjd||��S)zA
    Extend warning 'Task is duplicated by URL' for end user
    c�J�d}|�d��}|dkr||zS|S)zM
        Add more text for duplicate warning, leave others unchanged
        s�. In case if you do not see running task for the same URL in your list of tasks below, contact your server administrator and ask him to check whether the requested URL is in the tasks list of X-Ray Admin Plugin or is scheduled for continuous tracing.rsTask is duplicated by URL)�group)�m�
additional�warns   r�genz#duplicate_warning_cast.<locals>.gen7s7��V�
��w�w�q�z�z���/�/�/��*�$�$��rs(?<="warning": ").+(?="}))r r!)rr*s  r�duplicate_warning_castr+2s(��
����6�.��X�>�>�>r�command�user�runnerc���
����jdkr1	t��|d<n#t$rt��cYSwxYw�fd��d��
d}d}||g�|�|��}|�|t����}|r0�|��}d�j��d|��||�d	��g}nd�j��|�d	��g}|��
��fd
�|�	��D����||d�}	t�d|t|	����	tj|d
|	���}
n0#tt tjf$rt��cYSwxYw|
j���|
j���}}|r:t�dt+��jt-|����|r?t�dt+��j|�����t1|��|fS)zA
    Trigger runner.target utility with requested parameters
    �manager�	system_idc�F��|�jvr�j||��n|S)z0runner may define a special cast for each option)�option_cast)�optr.s �r�runner_cast_optz(execute_manager.<locals>.runner_cast_optQs<����6�-�-�-�'�v�!�#�&�����36�	7rc��|durdnd|��S)z=Hide True value from cmd representation for bool-flag optionsT��=�)�vs r�
hide_true_valz&execute_manager.<locals>.hide_true_valVs���$�Y�Y�r�r�G��G�G�+r�api_version�langz
/usr/sbin/�--r,c�T��g|]$\}}|r|�v�d�|����|������%S)r>r9)�.0�kr:r;r5�skip_optionss   ���r�
<listcomp>z#execute_manager.<locals>.<listcomp>ks^���@�@�@���1�#$�@�)*�,�)>�)>�<�_�_�Q�'�'�;���q�)9�)9�;�;�)>�)>�)>r)�XRAYEXEC_UID�LANGz*Going to execute: %s, with environment: %sT)�capture_output�envz[%s] Proxied command stdout: %sz[%s] Proxied command stderr: %s)�namerr
r�getr�target�pop�extend�items�logger�info�str�
subprocess�run�OSError�
ValueError�SubprocessError�stdout�strip�stderrrr#r"r+)r,r-r.�api_version_key�
locale_optionr<�
target_locale�casted_api_version�cmd�with_env�p�byte_out�byte_errr;r5rBs  `          @@@r�execute_managerrbGs��������{�i���	(�#.�=�=�G�K� � ���	(�	(�	(�%�'�'�'�'�'�	(����7�7�7�7�7�
,�,�,�$�O��M�$�]�3�L��+�+�o�.�.�K��K�K�
�/E�/G�/G�H�H�M��E�,�_�_�=�=��+�F�M�+�+�-F�2D�-F�-F��U\�U`�U`�aj�Uk�Uk�l���+�F�M�+�+�W�[�[��-C�-C�D���J�J�@�@�@�@�@�@��
�
���@�@�@�A�A�A�!%�m�<�<�H�
�K�K�<�c�3�x�=�=�Q�Q�Q�$��N�3�t�'�
)�
)�
)�����Z��!;�<�$�$�$�!�#�#�#�#�#�$��������)�)�1�8�>�>�+;�+;�h�H��,����5�~�7G�7G�7L� ��*�*�	,�	,�	,��'����5�~�7G�7G�7L��O�O�%�%�	'�	'�	'�!�(�+�+�X�5�5s�#�>�>�=E�*F�F�
connection�
socket objectc	�F�tjdtd��id���}|5t|��\}}}t	|��rB|�t
|�������	ddd��dS|�d��}|s	ddd��dSt|��}	t|�d����}nd#t$rW}|�t
t|���������Yd}~ddd��dSd}~wwxYw	|�|��nd#t$rW}|�t
t|���������Yd}~ddd��dSd}~wwxYwt!|t|��|��\}	}
|�t
|	p|
����ddd��dS#1swxYwYdS)z
    Handle incoming connection
    :param connection: socket object usable to
    send and receive data on the connection
    �resultz#Commands from root are not acceptedF)�ensure_asciiNir.)�json�dumpsrrr�sendallr
r�recvrrrKr
rP�	validator�
SystemExitrb)rc�
root_error�_pid�_uid�_gid�data�argsr.�e�_outrs           r�handlerv�s������!�9�:�:������J�
�8�8�(��4�4���d�D��$���	����}�Z�->�->�-@�-@�A�A�B�B�B��	8�8�8�8�8�8�8�8����t�$�$���	��8�8�8�8�8�8�8�8��d�#�#��	������ 2� 2�3�3�F�F���	�	�	����}�S��V�V�]�]�_�_�=�=�>�>�>��F�F�F�#8�8�8�8�8�8�8�8�����	����	����T�"�"�"�"���	�	�	����}�S��V�V�]�]�_�_�=�=�>�>�>��F�F�F�/8�8�8�8�8�8�8�8�����*	����%�T�3�t�9�9�f�=�=�
��d����=����6�6�7�7�7�58�8�8�8�8�8�8�8�8�8�8�8����8�8�8�8�8�8su�AH�
H�2H�"C%�$H�%
E�/AE�0H�E�H�
E �H� 
G�*AF<�+H�<G�AH�H�Hc�6�tt��tt��5}	|���\}}tt|f���}|���t�	d|j
���c#1swxYwYdS)z
    Run listening service
    T)rJrsz[%s] StartedN)rr	rr�acceptrrv�startrNrOrH)�s�connr�ts    rrRrR�s����n�%�%�%�	��	'�	'�0�1�	0��h�h�j�j�G�D�!��f�D�7�3�3�3�A�
�G�G�I�I�I��K�K����/�/�/�		0�0�0�0�0����0�0�0�0�0�0s�A%B�B�B)rcrdrN)rN),�__doc__rh�loggingr rQ�	threadingrr�typingr�#xray.console_utils.run_user.runnersrr�xray.internal.constantsrr	�xray.internal.exceptionsr
�xrayrr�xray.internal.user_plugin_utilsrr
rrr�xray.internal.utilsrrr�clcommon.clwpos_libr�	getLoggerrN�bytesrrPr#r+�dictrbrvrRr9rr�<module>r�s������������	�	�	�	�����,�,�,�,�,�,�,�,�������B�B�B�B�B�B�B�B�C�C�C�C�C�C�C�C�.�.�.�.�.�.���������������������N�M�M�M�M�M�M�M�M�M�6�6�6�6�6�6�	��	�<�	(�	(��.�E�%��,�/�.�.�.�.�O�5�O�S�O�O�O�O�?�U�?�u�?�?�?�?�*66�T�66��66�f�66��u�e�|�AT�66�66�66�66�r#8�#8�#8�#8�L
0�
0�
0�
0�
0�
0r