C# Class Granados.SSH2.SSH2ChannelBase

SSH2 channel base class.
Inheritance: ISSHChannel
Show file Open project: poderosaproject/poderosa

Public Methods

Method Description
Close ( ) : void

Close this channel.

After calling this method, all mothods of the ISSHChannel will throw SSHChannelInvalidOperationException.If this method was called under the inappropriate channel state, the method call will be ignored silently.

ProcessPacket ( SSH2PacketType packetType, Granados.IO.DataFragment packetFragment ) : void

Process packet about this channel.

ResizeTerminal ( uint width, uint height, uint pixelWidth, uint pixelHeight ) : void

Send window dimension change message.

SSH2ChannelBase ( IPacketSender packetSender, SSHConnectionParameter param, SSHProtocolEventManager protocolEventManager, uint localChannel, ChannelType channelType, string channelTypeString ) : System

Constructor (initiated by client)

SSH2ChannelBase ( IPacketSender packetSender, SSHConnectionParameter param, SSHProtocolEventManager protocolEventManager, uint localChannel, uint remoteChannel, ChannelType channelType, string channelTypeString, uint serverWindowSize, uint serverMaxPacketSize ) : System

Constructor (initiated by server)

Send ( Granados.IO.DataFragment data ) : void

Send data.

SendBreak ( int breakLength ) : bool

Send Break. (SSH2, session channel only)

SendEOF ( ) : void

Send EOF.

SendOpen ( ) : void

Sends SSH_MSG_CHANNEL_OPEN

SendOpenConfirmation ( ) : void

Sends SSH_MSG_CHANNEL_OPEN_CONFIRMATION

SetHandler ( ISSHChannelEventHandler handler ) : void

Sets handler

WaitReady ( ) : bool

Block execution of the current thread until the channel is ready for the communication.

Protected Methods

Method Description
BuildOpenPacket ( ) : SSH2Packet

Builds SSH_MSG_CHANNEL_OPEN packet

Die ( ) : void

Notifies terminating this channel.

OnChannelEstablished ( ) : void

Do additional work when State was changed to State.Established.

ProcessPacketSub ( SSH2PacketType packetType, Granados.IO.DataFragment packetFragment ) : SubPacketProcessResult

Process packet additionally.

This method will be called repeatedly while State is State.Established or State.Ready.

RequestFailed ( ) : void

The derived class can change state from "Established" to "Closing" by calling this method.

SendRequest ( SSH2Packet requestPacket ) : void

Sends SSH_MSG_CHANNEL_REQUEST packet (no response)

SendRequestAndWaitResponseAsync ( SSH2Packet requestPacket ) : Task

Sends SSH_MSG_CHANNEL_REQUEST packet and wait response asynchronously.

SetStateReady ( ) : void

The derived class can change state from "Established" to "Ready" by calling this method.

Trace ( string format ) : void

Outputs Trace message.

Transmit ( int consumedSize, SSH2Packet packet ) : void

Sends a packet.

Private Methods

Method Description
AdjustWindowSize ( int dataLength ) : void

Adjust window size.

SetStateClosed ( bool byServer ) : void

Set state to "Closed".

WaitResponseAsync ( ) : Task

Method Details

BuildOpenPacket() protected method

Builds SSH_MSG_CHANNEL_OPEN packet
protected BuildOpenPacket ( ) : SSH2Packet
return SSH2Packet

Close() public method

Close this channel.
After calling this method, all mothods of the ISSHChannel will throw SSHChannelInvalidOperationException. If this method was called under the inappropriate channel state, the method call will be ignored silently.
public Close ( ) : void
return void

Die() protected method

Notifies terminating this channel.
protected Die ( ) : void
return void

OnChannelEstablished() protected method

Do additional work when State was changed to State.Established.
protected OnChannelEstablished ( ) : void
return void

ProcessPacket() public method

Process packet about this channel.
public ProcessPacket ( SSH2PacketType packetType, Granados.IO.DataFragment packetFragment ) : void
packetType SSH2PacketType a packet type (message number)
packetFragment Granados.IO.DataFragment a packet image except message number and recipient channel.
return void

ProcessPacketSub() protected method

Process packet additionally.
This method will be called repeatedly while State is State.Established or State.Ready.
protected ProcessPacketSub ( SSH2PacketType packetType, Granados.IO.DataFragment packetFragment ) : SubPacketProcessResult
packetType SSH2PacketType a packet type (message number)
packetFragment Granados.IO.DataFragment a packet image except message number and recipient channel.
return SubPacketProcessResult

RequestFailed() protected method

The derived class can change state from "Established" to "Closing" by calling this method.
protected RequestFailed ( ) : void
return void

ResizeTerminal() public method

Send window dimension change message.
the channel is already closed.
public ResizeTerminal ( uint width, uint height, uint pixelWidth, uint pixelHeight ) : void
width uint terminal width, columns
height uint terminal height, rows
pixelWidth uint terminal width, pixels
pixelHeight uint terminal height, pixels
return void

SSH2ChannelBase() public method

Constructor (initiated by client)
public SSH2ChannelBase ( IPacketSender packetSender, SSHConnectionParameter param, SSHProtocolEventManager protocolEventManager, uint localChannel, ChannelType channelType, string channelTypeString ) : System
packetSender IPacketSender
param SSHConnectionParameter
protocolEventManager SSHProtocolEventManager
localChannel uint
channelType ChannelType
channelTypeString string
return System

SSH2ChannelBase() public method

Constructor (initiated by server)
public SSH2ChannelBase ( IPacketSender packetSender, SSHConnectionParameter param, SSHProtocolEventManager protocolEventManager, uint localChannel, uint remoteChannel, ChannelType channelType, string channelTypeString, uint serverWindowSize, uint serverMaxPacketSize ) : System
packetSender IPacketSender
param SSHConnectionParameter
protocolEventManager SSHProtocolEventManager
localChannel uint
remoteChannel uint
channelType ChannelType
channelTypeString string
serverWindowSize uint
serverMaxPacketSize uint
return System

Send() public method

Send data.
the channel is already closed.
public Send ( Granados.IO.DataFragment data ) : void
data Granados.IO.DataFragment data to send
return void

SendBreak() public method

Send Break. (SSH2, session channel only)
the channel is already closed.
public SendBreak ( int breakLength ) : bool
breakLength int break-length in milliseconds
return bool

SendEOF() public method

Send EOF.
the channel is already closed.
public SendEOF ( ) : void
return void

SendOpen() public method

Sends SSH_MSG_CHANNEL_OPEN
public SendOpen ( ) : void
return void

SendOpenConfirmation() public method

Sends SSH_MSG_CHANNEL_OPEN_CONFIRMATION
inappropriate channel state
public SendOpenConfirmation ( ) : void
return void

SendRequest() protected method

Sends SSH_MSG_CHANNEL_REQUEST packet (no response)
protected SendRequest ( SSH2Packet requestPacket ) : void
requestPacket SSH2Packet SSH_MSG_CHANNEL_REQUEST packet
return void

SendRequestAndWaitResponseAsync() protected method

Sends SSH_MSG_CHANNEL_REQUEST packet and wait response asynchronously.
protected SendRequestAndWaitResponseAsync ( SSH2Packet requestPacket ) : Task
requestPacket SSH2Packet SSH_MSG_CHANNEL_REQUEST packet
return Task

SetHandler() public method

Sets handler
public SetHandler ( ISSHChannelEventHandler handler ) : void
handler ISSHChannelEventHandler
return void

SetStateReady() protected method

The derived class can change state from "Established" to "Ready" by calling this method.
protected SetStateReady ( ) : void
return void

Trace() protected method

Outputs Trace message.
protected Trace ( string format ) : void
format string format string
return void

Transmit() protected method

Sends a packet.
protected Transmit ( int consumedSize, SSH2Packet packet ) : void
consumedSize int consumed window size.
packet SSH2Packet packet object
return void

WaitReady() public method

Block execution of the current thread until the channel is ready for the communication.
public WaitReady ( ) : bool
return bool