HEX
Server: LiteSpeed
System: Linux l24.yourwebhosting.net 5.14.0-611.54.3.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Thu May 7 16:31:24 EDT 2026 x86_64
User: turkishi (1582)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: //opt/cloudlinux/venv/lib/python3.11/site-packages/clwpos/__pycache__/socket_utils.cpython-311.pyc
�

�Qʂ,�v�	��ddlmZddlZddlZddlZddlZddlmZdZdZ	dZ
dejdefd	�Zd
e
defd�Zdejded
edeefd�Zdejdee
fd�Zdejdee
fd�Zdejde
fd�ZdS)�)�absolute_importN)�Optionalz>I�
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-7so���'�'�C�
�;��#�
$�
$�����{���	�*�*�*���s�8�8�y� � ��J�J�J��
�3������4rc�p�|�d��|�t��t|dt��}|�dSt	jt|��d}|tkrdSt||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-rrr�
_MAX_MSG_SIZEr�loads�decode�r�
raw_msglen�msglenr+s    r�'read_unpack_response_from_socket_daemonr:Hs������E�"�"�"����8�9�9�9�5�k�1�Fc�d�d�J����t�
�]�7�J�
/�
/��
2�F�
�
����t�
.�{�F�Da�
b�
b�C�
�{��t��:�c�j�j��)�)�*�*�*rc��	|�d��}tjt|��d}|tkrdSt��}t
|��|kr+||�d��z
}t
|��|k�+n#tj$rYdSwxYwtj
|�d����S)r/r0rNir)r(rrrr4r&r r�timeoutrr5r6r7s    r�'read_unpack_response_from_socket_clientr=as���	� �%�%�a�(�(�
���w�
�3�3�A�6���M�!�!��4��g�g���#�h�h�&� � ��;�#�#�D�)�)�)�C��#�h�h�&� � ����>�����t�t������:�c�j�j��)�)�*�*�*s�AB�AB�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_closerDws=��)��6�6�M����}�%�%�%��������r)�
__future__rrrrr)�typingrrr3r4�intr�dictr&r"r-r:r=rD�rr�<module>rJse��'�&�&�&�&�&�����
�
�
�
�
�
�
�
�������������!#�� �
�
�V�]�
�s�
�
�
�
�
<�D�
<�U�
<�
<�
<�
<��f�m��PS��69��>F�u�o�����"+���+�8�TX�>�+�+�+�+�2+���+�8�TX�>�+�+�+�+�,����VZ������r