HEX
Server: LiteSpeed
System: Linux php-prod-1.spaceapp.ru 5.15.0-157-generic #167-Ubuntu SMP Wed Sep 17 21:35:53 UTC 2025 x86_64
User: xnsbb3110 (1041)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //usr/local/CyberPanel/lib64/python3.10/site-packages/asyncssh/__pycache__/forward.cpython-310.pyc
o

�h��@s�dZddlZddlZddlmZddlmZmZmZm	Z	m
Z
mZddlmZm
Z
ddlmZddlmZmZer>dd	lmZe	d
efZGdd�dej�ZGd
d�de�ZGdd�de�ZGdd�de�ZdS)zSSH port forwarding handlers�N)�
TracebackType)�
TYPE_CHECKING�Any�	Awaitable�Callable�Dict�Optional)�Type�cast)�Self�)�ChannelOpenError�SockAddr)�
SSHConnection.c@sNeZdZdZ		d3deddeeeeffdd�Zde	fdd	�Z
d
eeedeedee
defd
d�Zd4dededefdd�Zd5dd�Zdeddfdd�Zd6dd�Zdefdd�Zd6dd�Zd6dd�Zd ejddfd!d"�Zd#eeddfd$d%�Zd6d&d'�Z	d4ded(eeddfd)d*�Zdefd+d,�Z d6d-d.�Z!d6d/d0�Z"d6d1d2�Z#dS)7�SSHForwarderz&SSH port forwarding connection handlerN�peer�extracCs<||_d|_d|_d|_|r|�|�|duri}||_dS)N�F)�_peer�
_transport�_inpbuf�
_eof_received�set_peer�_extra)�selfrr�r�F/usr/local/CyberPanel/lib/python3.10/site-packages/asyncssh/forward.py�__init__,s

zSSHForwarder.__init__�returnc�s�|S�Nr�rrrr�
__aenter__;s�zSSHForwarder.__aenter__�	_exc_type�
_exc_value�
_tracebackc�s�|��dS)NF��close)rr"r#r$rrr�	__aexit__>s�zSSHForwarder.__aexit__�name�defaultcCs|j�||�S)aSGet additional information about the forwarder

           This method returns extra information about the forwarder.
           Currently, the only information available is the value
           ``interface`` for TUN/TAP forwarders, returning the name of the
           local TUN/TAP network interface created for this forwarder.

        )r�get)rr(r)rrr�get_extra_infoDs
zSSHForwarder.get_extra_infocCs
||_dS)z,Set the peer forwarder to exchange data withN)r�rrrrrrPs
zSSHForwarder.set_peer�datacCs|jdusJ�|j�|�dS)zWrite data to the transportN)r�write)rr-rrrr.UszSSHForwarder.writecCs4|jdusJ�z|j��WdStyYdSw)z"Write end of file to the transportN)r�	write_eof�OSErrorr rrrr/[s�zSSHForwarder.write_eofcCs|jS)z3Return whether end of file has been received or not)rr rrr�was_eof_receivedeszSSHForwarder.was_eof_receivedcC�|jdusJ�|j��dS)z Pause reading from the transportN)r�
pause_readingr rrrr3j�zSSHForwarder.pause_readingcCr2)zResume reading on the transportN)r�resume_readingr rrrr5pr4zSSHForwarder.resume_reading�	transportcCsVttd|�|_ttj|�d��}|r'|jtjtjhvr)|�tj	tj
d�dSdSdS)� Handle a newly opened connectionzasyncio.Transport�socketrN)r
rrr8r+�family�AF_INET�AF_INET6�
setsockopt�IPPROTO_TCP�TCP_NODELAY)rr6�sockrrr�connection_madevs
�zSSHForwarder.connection_made�exccCs|��dS)z#Handle an incoming connection closeNr%)rrArrr�connection_lost�szSSHForwarder.connection_lostcCsdS)zHandle session startNrr rrr�session_started�szSSHForwarder.session_started�datatypecCs(|jr|j�|�dS|j|7_dS)z'Handle incoming data from the transportN)rr.r)rr-rDrrr�
data_received�szSSHForwarder.data_receivedcCs&d|_|jr|j��|j��SdS)z1Handle an incoming end of file from the transportT)rrr/r1r rrr�eof_received�s

zSSHForwarder.eof_receivedcC�|jr
|j��dSdS)z-Pause writing by asking peer to pause readingN)rr3r rrr�
pause_writing���zSSHForwarder.pause_writingcCrG)z/Resume writing by asking peer to resume readingN)rr5r rrr�resume_writing�rIzSSHForwarder.resume_writingcCs8|jr|j��d|_|jr|j}d|_|��dSdS)zClose this port forwarderN)rr&rr,rrrr&�s
�zSSHForwarder.close)NNr)rrrN)rN)$�__name__�
__module__�__qualname__�__doc__rr�strrrrr!r	�
BaseExceptionr�boolr'r+r�bytesr.r/r1r3r5�asyncio�
BaseTransportr@�	ExceptionrBrC�intrErFrHrJr&rrrrr)sF�
���
�






��
�

rcsNeZdZdZdddef�fdd�Zdedd	fd
d�Zdedd	fdd
�Z�Z	S)�SSHLocalForwarderz#Local forwarding connection handler�connr�corocst���||_||_dSr)�superr�_conn�_coro)rrXrY��	__class__rrr�s

zSSHLocalForwarder.__init__�argsrNc
�s��dtf�fdd�}z�j|g|�R�IdHWnty0}z��|�WYd}~dSd}~ww�jdus8J��jrE�j��j�d�_�jrO�j��dSdS)zBegin local forwardingrcst��S)zReturn an SSH forwarder)rrr rr�session_factory�sz3SSHLocalForwarder._forward.<locals>.session_factoryNr)	rr\r
rBrrr.rr/)rr_r`rArr r�_forward�s �
���zSSHLocalForwarder._forwardcGs|j�|j|��dS)z&Start a task to begin local forwardingN)r[�create_taskra)rr_rrr�forward�szSSHLocalForwarder.forward)
rKrLrMrN�SSHForwarderCoror�objectrarc�
__classcell__rrr]rrW�s
rWc�,eZdZdZdejddf�fdd�Z�ZS)�SSHLocalPortForwarderz,Local TCP port forwarding connection handlerr6rNcs@t��|�tt|�d��}|r|dd�\}}|�||�dS)r7�peernameN�)rZr@r
rr+rc)rr6ri�	orig_host�	orig_portr]rrr@�s
z%SSHLocalPortForwarder.connection_made�rKrLrMrNrSrTr@rfrrr]rrh�� rhcrg)�SSHLocalPathForwarderz6Local UNIX domain socket forwarding connection handlerr6rNcst��|�|��dS)r7N)rZr@rc)rr6r]rrr@�sz%SSHLocalPathForwarder.connection_madermrrr]rro�rnro)rNrSr8�typesr�typingrrrrrrr	r
�typing_extensionsr�miscr
r�
connectionrrd�BaseProtocolrrWrhrorrrr�<module>s  %