File: //usr/lib/python3/dist-packages/twisted/conch/ssh/__pycache__/forwarding.cpython-38.pyc
U
W[� � @ s d Z ddlmZmZ ddlZddlmZmZ ddlm Z m
Z
ddlmZ ddl
mZmZ ddlmZmZ G d d
� d
ej�ZG dd� dej�ZG d
d� de�ZG dd� de�ZG dd� dej�Zdd� ZG dd� dej�Zdd� ZeZdd� ZeZ dd� Z!dd� Z"dS )z�
This module contains the implementation of the TCP forwarding, which allows
clients and servers to forward arbitrary TCP data across the connection.
Maintainer: Paul Swartz
� )�division�absolute_importN)�protocol�reactor)�HostnameEndpoint�connectProtocol)�log)�_PY3�unicode)�common�channelc @ s e Zd Zdd� Zdd� ZdS )�SSHListenForwardingFactoryc C s || _ || _|| _d S �N)�conn�hostport�klass)�selfZ
connectionr r � r �>/usr/lib/python3/dist-packages/twisted/conch/ssh/forwarding.py�__init__ s z#SSHListenForwardingFactory.__init__c C sF | j | jd�}t|�}||_|j|jf}t| j|�}| j�||� |S )N)r ) r r �SSHForwardingClient�client�host�port�packOpen_direct_tcpipr ZopenChannel)r Zaddrr r Z addrTupleZchannelOpenDatar r r �
buildProtocol s z(SSHListenForwardingFactory.buildProtocolN)�__name__�
__module__�__qualname__r r r r r r r
s r
c @ s4 e Zd Zdd� Zdd� Zdd� Zdd� Zd d
� ZdS )�SSHListenForwardingChannelc C sF t �d| j � t| jj�dkr:| jjdd � }| �|� d| j_d S )Nzopened forwarding channel %s� � )r �msg�id�lenr �buf�write)r �specificData�br r r �channelOpen'