File manager - Edit - /usr/local/CyberPanel/lib/python3.10/site-packages/docker/transport/__pycache__/npipesocket.cpython-310.pyc
Back
o �h� � @ s| d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZdZdZ d Z dZdd� ZG dd� d�Z G d d � d ej�ZdS )� N�� i � c s t �� �� fdd��}|S )Nc s$ | j rtd��� | g|�R i |��S )Nz1Can not reuse socket after connection was closed.)�_closed�RuntimeError)�self�args�kwargs��f� �R/usr/local/CyberPanel/lib/python3.10/site-packages/docker/transport/npipesocket.py�wrapped s �zcheck_closed.<locals>.wrapped)� functools�wraps)r r r r r �check_closed s r c @ s$ e Zd ZdZd8dd�Zdd� Zdd� Zd d � Zed9dd ��Z edd� �Z edd� �Zedd� �Zdd� Z dd� Zd8dd�Zdd� Zdd� Zd:dd�Zed9d d!��Zed9d"d#��Zed;d$d%��Zed9d&d'��Zed9d(d)��Zed9d*d+��Zed,d-� �Zd.d/� Zd0d1� Zd2d3� Zd4d5� Zed6d7� �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. Nc C s t j| _|| _d| _d S �NF)� win32pipe�NMPWAIT_USE_DEFAULT_WAIT�_timeout�_handler )r �handler r r �__init__$ s zNpipeSocket.__init__c C � t � ��N��NotImplementedError�r r r r �accept) � zNpipeSocket.acceptc C r r r �r �addressr r r �bind, r zNpipeSocket.bindc C s | j �� d| _d S �NT)r �Closer r r r r �close/ � zNpipeSocket.closer c C s� zt �|t jt jB dd t jttB t jB d�}W n- tj yD } z |j tkr>|d }|tk r>t �d� | �||�W Y d }~S |�d }~ww t�|�d | _|| _|| _d S )Nr � )� win32file� CreateFile�GENERIC_READ� GENERIC_WRITE� OPEN_EXISTING�cSECURITY_ANONYMOUS�cSECURITY_SQOS_PRESENT�FILE_FLAG_OVERLAPPEDr �error�winerror�cERROR_PIPE_BUSY�MAXIMUM_RETRY_COUNT�time�sleep�connect�GetNamedPipeInfo�flagsr �_address)r r! �retry_countr �er r r r6 3 s4 ��� �� zNpipeSocket.connectc C s | � |�S r )r6 r r r r � connect_exS � zNpipeSocket.connect_exc C s d| _ | jS r# )r r r r r r �detachW s zNpipeSocket.detachc C s t | j�S r )r r r r r r �dup\ r= zNpipeSocket.dupc C � | j S r �r9 r r r r �getpeername` r zNpipeSocket.getpeernamec C r@ r rA r r r r �getsocknamec r zNpipeSocket.getsocknamec C r r r )r �level�optname�buflenr r r � getsockoptf r zNpipeSocket.getsockoptc C r r r )r �control�optionr r r �ioctli r zNpipeSocket.ioctlc C r r r )r �backlogr r r �listenl r zNpipeSocket.listenc C s@ |� d�dkr t� �t| �}|d u s|dkrtj}tj||d�S )N�b�rr )�buffer_size)�stripr �NpipeFileIOBase�io�DEFAULT_BUFFER_SIZE�BufferedReader)r �mode�bufsize�rawior r r �makefileo s zNpipeSocket.makefilec C s t �| j|�\}}|S r )r( �ReadFiler )r rV r8 �err�datar r r �recvw s zNpipeSocket.recvc C s | � ||�}|| jfS r )r\ r9 )r rV r8 r[ r r r �recvfrom| s zNpipeSocket.recvfromc C s | � |||�| jfS r )� recv_intor9 )r �buf�nbytesr8 r r r � recvfrom_into� s zNpipeSocket.recvfrom_intoc C s� |}t |t�st|�}t�d ddd �}z;t�� }||_t�| j |r'|d |� n||�\}}t� || j�}|tjkrAt� | j � t�t�| j |d�W t�|� S t�|� w �NTr )� isinstance� memoryview� win32event�CreateEvent� pywintypes� OVERLAPPED�hEventr( rY r �WaitForSingleObjectr �WAIT_TIMEOUT�CancelIo�TimeoutError�GetOverlappedResult�win32api�CloseHandle) r r_ r` �readbuf�event� overlappedrZ r[ �wait_resultr r r r^ � s$ � zNpipeSocket.recv_intoc C s� t �d ddd �}z1t�� }||_t�| j||� t �|| j �}|t j kr,t�| j� t�t� | j|d�W t�|� S t�|� w rb )re rf rg rh ri r( � WriteFiler rj r rk rl rm rn ro rp )r �stringr8 rr rs rt r r r �send� s zNpipeSocket.sendc C s | � ||�S r )rw )r rv r8 r r r �sendall� s zNpipeSocket.sendallc C s | � |� | �|�S r )r6 rw )r rv r! r r r �sendto� s zNpipeSocket.sendtoc C s |r| � d �S | � d�S )Nr )� settimeout)r �flagr r r �setblocking� s zNpipeSocket.setblockingc C sD |d u r t j| _d S t|ttf�r|dk rtd��t|d �| _d S )Nr zTimeout value out of rangei� )re �INFINITEr rc �float�int� ValueError)r �valuer r r rz � s zNpipeSocket.settimeoutc C r@ r )r r r r r � gettimeout� r zNpipeSocket.gettimeoutc C r r r )r rD rE r� r r r � setsockopt� r zNpipeSocket.setsockoptc C s | � � S r )r% )r �howr r r �shutdown� s zNpipeSocket.shutdownr )r )NN)r r )�__name__� __module__�__qualname__�__doc__r r r"