GlobalRequestMessage
Represents SSH_MSG_GLOBAL_REQUEST message.
using Renci.SshNet.Common;
namespace Renci.SshNet.Messages.Connection
{
[Message("SSH_MSG_GLOBAL_REQUEST", 80)]
public class GlobalRequestMessage : Message
{
private byte[] _requestName;
private byte[] _addressToBind;
public GlobalRequestName RequestName => _requestName.ToGlobalRequestName();
public bool WantReply { get; set; }
public string AddressToBind {
get {
return SshData.Utf8.GetString(_addressToBind, 0, _addressToBind.Length);
}
private set {
_addressToBind = SshData.Utf8.GetBytes(value);
}
}
public uint PortToBind { get; set; }
protected override int BufferCapacity => base.BufferCapacity + 4 + _requestName.Length + 1 + 4 + _addressToBind.Length + 4;
public GlobalRequestMessage()
{
}
public GlobalRequestMessage(GlobalRequestName requestName, bool wantReply, string addressToBind, uint portToBind)
{
_requestName = requestName.ToArray();
WantReply = wantReply;
AddressToBind = addressToBind;
PortToBind = portToBind;
}
protected override void LoadData()
{
_requestName = ReadBinary();
WantReply = ReadBoolean();
_addressToBind = ReadBinary();
PortToBind = ReadUInt32();
}
protected override void SaveData()
{
WriteBinaryString(_requestName);
Write(WantReply);
WriteBinaryString(_addressToBind);
Write(PortToBind);
}
}
}