????

Your IP : 3.138.117.11


Current Path : /opt/cloudlinux/venv/lib/python3.11/site-packages/clwpos/__pycache__/
Upload File :
Current File : //opt/cloudlinux/venv/lib/python3.11/site-packages/clwpos/__pycache__/socket_utils.cpython-311.pyc

�

.?E��?�	��ddlmZddlZddlZddlZddlZddlmZdZdZ	dejde
fd�Zd	ede
fd
�Zdejde
de
dee
fd
�Zdejdeefd�Zdejdeefd�Zdejdefd�ZdS)�)�absolute_importN)�Optionalz>I�
�sock_object�returnc��d}|�tjtjt	j|����}t	j||��\}}}|S)z�
    Retrieve credentials from SO_PEERCRED option
    :param sock_object: Socket object
    :return: uid of user, which connects to this socket.
    �3I)�
getsockopt�socket�
SOL_SOCKET�SO_PEERCRED�struct�calcsize�unpack)r�_format_string�creds�_�_uids     �py/clwpos/socket_utils.py�get_uid_from_socketrsM���N��"�"�6�#4�f�6H�&�/�Zh�Ji�Ji�j�j�E���~�u�5�5�J�A�t�Q��K��	data_dictc��tj|���d��}tjt
t
|����|zS)z�
    Prefix message with a 4-byte length
    :param data_dict: Data dict for send
    :return: byte array for send to socket
    �utf-8)�json�dumps�encoder�pack�_format�len)r�	msg_bytess  r�pack_data_for_socketr"'s@���
�9�%�%�,�,�W�5�5�I��;�w��I���/�/�)�;�;r�	num_bytes�timeout_secc���t��}t|dz��D]E}||�|��z
}t|��|kr|cSt	jd���FdS)z�
    Read amount data from socket
    :param sock_object: Socket object to read data from
    :param num_bytes: Bytes number to read
    :param timeout_sec: Read timeout, None - timeout expired, data not received
    rg�������?N)�bytes�range�recvr �time�sleep)rr#r$�msg�is     r�$_read_bytes_from_socket_with_timeoutr-4so���'�'�C�
�;��#�
$�
$�����{���	�*�*�*���s�8�8�y� � ��J�J�J��
�3������4rc�V�|�d��|�t��t|dt��}|�dSt	jt|��d}t||t��}|�dStj|�	d����S)��
    Read length-prefixed amount of data from socket
    :param sock_object: Socket object to read data
    :return: Data received from socket dictionary. None - socket data format error
    F�Nrr)
�setblocking�
settimeout�_WPOS_SOCKET_READ_TIMEOUT_SECr-rrrr�loads�decode�r�
raw_msglen�msglenr+s    r�'read_unpack_response_from_socket_daemonr9Es������E�"�"�"����8�9�9�9�5�k�1�Fc�d�d�J����t�
�]�7�J�
/�
/��
2�F�
.�{�F�Da�
b�
b�C�
�{��t��:�c�j�j��)�)�*�*�*rc��	|�d��}tjt|��d}t	��}t|��|kr+||�d��z
}t|��|k�+n#tj$rYdSwxYwtj	|�
d����S)r/r0riNr)r(rrrr&r r�timeoutrr4r5r6s    r�'read_unpack_response_from_socket_clientr<\s���� �%�%�a�(�(�
���w�
�3�3�A�6���g�g���#�h�h�&� � ��;�#�#�D�)�)�)�C��#�h�h�&� � ����>�����t�t������:�c�j�j��)�)�*�*�*s�BB�B�B�
connection�data_to_sendc�v�t|��}|�|��|���dS)z�
    Sends dictionary to socket connection and close it
    :param connection: Socket connection to send data
    :param data_to_send: Data dict to send
    N)r"�sendall�close)r=r>�
bytes_to_sends   r�(send_dict_to_socket_connection_and_closerCps=��)��6�6�M����}�%�%�%��������r)�
__future__rrrrr)�typingrrr3�intr�dictr&r"r-r9r<rC�rr�<module>rIs^��'�&�&�&�&�&�����
�
�
�
�
�
�
�
�������������!#��
�V�]�
�s�
�
�
�
�
<�D�
<�U�
<�
<�
<�
<��f�m��PS��69��>F�u�o�����"+���+�8�TX�>�+�+�+�+�.+���+�8�TX�>�+�+�+�+�(����VZ������r