Файловый менеджер - Редактировать - /opt/imh-python/lib/python3.9/site-packages/paramiko/__pycache__/proxy.cpython-39.pyc
Ðазад
a s�h( � @ s� d dl Z d dlZd dlZd dlmZ d dlZd dlZd\ZZzd dlZW n( eyp Z ze ZW Y dZ [ n dZ [ 0 0 d dl mZ d dlm Z G dd� de �ZdS )� N)�select)NN)�ProxyCommandFailure)�ClosingContextManagerc @ sP e Zd ZdZdd� Zdd� Zdd� Zdd � Zed d� �Z edd � �Z dd� ZdS )�ProxyCommanda� Wraps a subprocess running ProxyCommand-driven programs. This class implements a the socket-like interface needed by the `.Transport` and `.Packetizer` classes. Using this class instead of a regular socket makes it possible to talk with a Popen'd command that will proxy traffic between the client and a server hosted in another machine. Instances of this class may be used as context managers. c C s@ t du rt�t�|�| _t j| jt jt jt jdd�| _d| _dS )a Create a new CommandProxy instance. The instance created by this class can be passed as an argument to the `.Transport` class. :param str command_line: the command that should be executed and used as the proxy. Nr )�stdin�stdout�stderr�bufsize) � subprocess�subprocess_import_error�shlex�split�cmd�Popen�PIPE�process�timeout)�selfZcommand_line� r �~/root/rpmbuild/BUILDROOT/imh-python39-modules-3.9.7-92.el8.x86_64/opt/imh-python/lib/python3.9/site-packages/paramiko/proxy.py�__init__3 s �zProxyCommand.__init__c C sT z| j j�|� W n8 tyJ } z td�| j�|j��W Y d}~n d}~0 0 t|�S )z� Write the content received from the SSH client to the standard input of the forked command. :param str content: string to be sent to the forked command � N) r r �write�IOErrorr �joinr �strerror�len)r �content�er r r �sendG s *zProxyCommand.sendc C s z�d}t � � }t|�|k r�d}| jdurPt � � | }|| jkrFt�� �| j| }t| jjgg g |�\}}}|r|d | jjkr|t�| jj� � |t|� �7 }q|W S tjy� |r�| Y S � Y n: t � y� } z td�| j �| j��W Y d} ~ n d} ~ 0 0 dS )z� Read from the standard output of the forked program. :param int size: how many chars should be read :return: the string of bytes read, which may be shorter than requested � Nr r )�timer r �socketr r r �os�read�filenor r r r r ) r �size�buffer�startZselect_timeout�elapsed�r�w�xr r r r �recvX s, �zProxyCommand.recvc C s t �| jjtj� d S �N)r# �killr �pid�signal�SIGTERM�r r r r �closey s zProxyCommand.closec C s | j jd uS r. )r � returncoder3 r r r �closed| s zProxyCommand.closedc C s | j S r. )r6 r3 r r r �_closed� s zProxyCommand._closedc C s || _ d S r. )r )r r r r r � settimeout� s zProxyCommand.settimeoutN)�__name__� __module__�__qualname__�__doc__r r r- r4 �propertyr6 r7 r8 r r r r r '