File: //proc/1233/root/usr/lib/python3/dist-packages/docker/utils/__pycache__/socket.cpython-310.pyc
o
�2.a � @ s� d dl Z d dlZd dlZd dlZd dlZzddlmZ W n
ey) e d�ZY nw dZ
dZG dd� de�Z
ddd �Zd
d� Zdd
� Zdd� Zdd� Zdd� Zddd�Zdd� ZdS )� N� )�NpipeSocket� c @ s e Zd ZdS )�SocketErrorN)�__name__�
__module__�__qualname__� r r �5/usr/lib/python3/dist-packages/docker/utils/socket.pyr s r � c
C s� t jt jt jf}t| t�st�| gg g � z"t| d�r!| �|�W S t| t t
d��r/| �|�W S t�| �
� |�W S tyP } z
|j |vrE� W Y d}~dS d}~ww )z+
Reads at most n bytes from socket
�recv�SocketION)�errno�EINTR�EDEADLK�EWOULDBLOCK�
isinstancer �select�hasattrr �getattr�pysocket�read�os�fileno�OSError)�socket�n�recoverable_errors�er r r
r s
���r c C sH t � }t|�|k r"t| |t|� �}|std��||7 }t|�|k s |S )z]
Reads exactly n bytes from socket
Raises SocketError if there isn't enough data
zUnexpected EOF)�bytes�lenr r )r r �data� next_datar r r
�read_exactly* s �r# c C s<