DisconnectMessage
Represents SSH_MSG_DISCONNECT message.
using Renci.SshNet.Common;
namespace Renci.SshNet.Messages.Transport
{
public class DisconnectMessage : Message, IKeyExchangedAllowed
{
private byte[] _description;
private byte[] _language;
public override string MessageName => "SSH_MSG_DISCONNECT";
public override byte MessageNumber => 1;
public DisconnectReason ReasonCode { get; set; }
public string Description {
get {
return SshData.Utf8.GetString(_description, 0, _description.Length);
}
private set {
_description = SshData.Utf8.GetBytes(value);
}
}
public string Language {
get {
return SshData.Utf8.GetString(_language, 0, _language.Length);
}
private set {
_language = SshData.Utf8.GetBytes(value);
}
}
protected override int BufferCapacity => base.BufferCapacity + 4 + 4 + _description.Length + 4 + _language.Length;
public DisconnectMessage()
{
}
public DisconnectMessage(DisconnectReason reasonCode, string message)
{
ReasonCode = reasonCode;
Description = message;
Language = "en";
}
protected override void LoadData()
{
ReasonCode = (DisconnectReason)ReadUInt32();
_description = ReadBinary();
_language = ReadBinary();
}
protected override void SaveData()
{
Write((uint)ReasonCode);
WriteBinaryString(_description);
WriteBinaryString(_language);
}
internal override void Process(Session session)
{
session.OnDisconnectReceived(this);
}
}
}