HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //usr/lib/python3/dist-packages/docker/transport/__pycache__/npipesocket.cpython-310.pyc
o

�2.a[�@sdddlZddlZddlZddlZddlZdZdZdZdZdd�Z	Gdd�d�Z
Gd	d
�d
ej�ZdS)�N��i�
cst����fdd��}|S)Ncs$|jrtd���|g|�Ri|��S)Nz1Can not reuse socket after connection was closed.)�_closed�RuntimeError)�self�args�kwargs��f��>/usr/lib/python3/dist-packages/docker/transport/npipesocket.py�wrappeds
�zcheck_closed.<locals>.wrapped)�	functools�wraps)r
r
rr	r�check_closedsrc@s,eZdZdZd:dd�Zdd�Zdd�Zd	d
�Zed;dd
��Z	edd��Z
edd��Zedd��Zdd�Z
dd�Zd:dd�Zdd�Zdd�Zd<dd�Zed;d d!��Zed;d"d#��Zed=d$d%��Zed;d&d'��Zd(d)�Zed;d*d+��Zed;d,d-��Zed.d/��Zd0d1�Zd2d3�Zd4d5�Zd6d7�Zed8d9��ZdS)>�NpipeSocketz� Partial implementation of the socket API over windows named pipes.
        This implementation is only designed to be used as a client socket,
        and server-specific methods (bind, listen, accept...) are not
        implemented.
    NcCstj|_||_d|_dS�NF)�	win32pipe�NMPWAIT_USE_DEFAULT_WAIT�_timeout�_handler)r�handlerrr�__init__!s
zNpipeSocket.__init__cC�t���N��NotImplementedError�rrrr�accept&�zNpipeSocket.acceptcCrrr�r�addressrrr�bind)rzNpipeSocket.bindcCs|j��d|_dS�NT)r�Closerrrrr�close,�

zNpipeSocket.closerc
Cs�zt�|tjtjBddtjttBd�}Wn-tjyA}z |j	t
kr;|d}|tkr;t�
d�|�||�WYd}~S|�d}~wwt�|�d|_||_||_dS)Nr�)�	win32file�
CreateFile�GENERIC_READ�
GENERIC_WRITE�
OPEN_EXISTING�cSECURITY_ANONYMOUS�cSECURITY_SQOS_PRESENTr�error�winerror�cERROR_PIPE_BUSY�MAXIMUM_RETRY_COUNT�time�sleep�connect�GetNamedPipeInfo�flagsr�_address)rr!�retry_countr�errrr50s,
�	

��

zNpipeSocket.connectcCs
|�|�Sr)r5r rrr�
connect_exN�
zNpipeSocket.connect_excCsd|_|jSr#)rrrrrr�detachRszNpipeSocket.detachcCs
t|j�Sr)rrrrrr�dupWr<zNpipeSocket.dupcC�|jSr�r8rrrr�getpeername[rzNpipeSocket.getpeernamecCr?rr@rrrr�getsockname^rzNpipeSocket.getsocknamecCrrr)r�level�optname�buflenrrr�
getsockoptarzNpipeSocket.getsockoptcCrrr)r�control�optionrrr�ioctldrzNpipeSocket.ioctlcCrrr)r�backlogrrr�listengrzNpipeSocket.listencCs@|�d�dkr
t��t|�}|dus|dkrtj}tj||d�S)N�b�rr)�buffer_size)�stripr�NpipeFileIOBase�io�DEFAULT_BUFFER_SIZE�BufferedReader)r�mode�bufsize�rawiorrr�makefilejszNpipeSocket.makefilecC�t�|j|�\}}|Sr)r(�ReadFiler)rrUr7�err�datarrr�recvr�zNpipeSocket.recvcCs|�||�}||jfSr)r\r8)rrUr7r[rrr�recvfromws
zNpipeSocket.recvfromcCs|�|||�|jfSr)�	recv_intor8)r�buf�nbytesr7rrr�
recvfrom_into|szNpipeSocket.recvfrom_intocCs@|}t|t�st|�}t�|j|r|d|�n|�\}}t|�Sr)�
isinstance�
memoryviewr(rYr�len)rr`ra�readbufrZr[rrrr_�s
�zNpipeSocket.recv_intocCs2t�|j|p	t|��\}}t|�}||d|�<|Sr)r(rYrre)rr`rarZr[�nrrr�_recv_into_py2�szNpipeSocket._recv_into_py2cCrXr)r(�	WriteFiler)r�stringr7rZrarrr�send�r]zNpipeSocket.sendcCs|�||�Sr)rk)rrjr7rrr�sendall�szNpipeSocket.sendallcCs|�|�|�|�Sr)r5rk)rrjr!rrr�sendto�s

zNpipeSocket.sendtocCs|r|�d�S|�d�S)Nr)�
settimeout)r�flagrrr�setblocking�s

zNpipeSocket.setblockingcCsT|dur
tj|_dSt|ttf�r|dkrtd��|dkr#tj|_dS|d|_dS)NrzTimeout value out of rangei�)r�NMPWAIT_WAIT_FOREVERrrc�float�int�
ValueError�NMPWAIT_NO_WAIT)r�valuerrrrn�szNpipeSocket.settimeoutcCr?r)rrrrr�
gettimeout�rzNpipeSocket.gettimeoutcCrrr)rrCrDrvrrr�
setsockopt�rzNpipeSocket.setsockoptcCs|��Sr)r%)r�howrrr�shutdown�szNpipeSocket.shutdownr)r)NN)rr) �__name__�
__module__�__qualname__�__doc__rrr"r%rr5r;r=r>rArBrFrIrKrWr\r^rbr_rhrkrlrmrprnrwrxrzrrrrrsR







rcsTeZdZdd�Z�fdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
�ZS)rPcCs
||_dSr)�sock)r�npipe_socketrrrr��
zNpipeFileIOBase.__init__cst���d|_dSr)�superr%rr��	__class__rrr%�r&zNpipeFileIOBase.closecCs
|j��Sr)r�filenorrrrr��r�zNpipeFileIOBase.filenocC�dSrrrrrr�isatty��zNpipeFileIOBase.isattycCr�r#rrrrr�readable�r�zNpipeFileIOBase.readablecCs|j�|�Sr)rr_)rr`rrr�readinto�szNpipeFileIOBase.readintocCr�rrrrrr�seekable�r�zNpipeFileIOBase.seekablecCr�rrrrrr�writable�r�zNpipeFileIOBase.writable)r{r|r}rr%r�r�r�r�r�r��
__classcell__rrr�rrP�srP)
rr3rQr(rr1r.r-r2rr�	RawIOBaserPrrrr�<module>s$