ForwardedTcpipChannelInfo
Used to open "forwarded-tcpip" channel type.
using Renci.SshNet.Common;
namespace Renci.SshNet.Messages.Connection
{
internal sealed class ForwardedTcpipChannelInfo : ChannelOpenInfo
{
public const string NAME = "forwarded-tcpip";
private byte[] _connectedAddress;
private byte[] _originatorAddress;
public override string ChannelType => "forwarded-tcpip";
public string ConnectedAddress {
get {
return SshData.Utf8.GetString(_connectedAddress, 0, _connectedAddress.Length);
}
private set {
_connectedAddress = SshData.Utf8.GetBytes(value);
}
}
public uint ConnectedPort { get; set; }
public string OriginatorAddress {
get {
return SshData.Utf8.GetString(_originatorAddress, 0, _originatorAddress.Length);
}
private set {
_originatorAddress = SshData.Utf8.GetBytes(value);
}
}
public uint OriginatorPort { get; set; }
protected override int BufferCapacity => base.BufferCapacity + 4 + _connectedAddress.Length + 4 + 4 + _originatorAddress.Length + 4;
public ForwardedTcpipChannelInfo(byte[] data)
{
Load(data);
}
public ForwardedTcpipChannelInfo(string connectedAddress, uint connectedPort, string originatorAddress, uint originatorPort)
{
ConnectedAddress = connectedAddress;
ConnectedPort = connectedPort;
OriginatorAddress = originatorAddress;
OriginatorPort = originatorPort;
}
protected override void LoadData()
{
base.LoadData();
_connectedAddress = ReadBinary();
ConnectedPort = ReadUInt32();
_originatorAddress = ReadBinary();
OriginatorPort = ReadUInt32();
}
protected override void SaveData()
{
base.SaveData();
WriteBinaryString(_connectedAddress);
Write(ConnectedPort);
WriteBinaryString(_originatorAddress);
Write(OriginatorPort);
}
}
}