ChannelExtendedDataMessage.cs 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. namespace Renci.SshNet.Messages.Connection
  2. {
  3. /// <summary>
  4. /// Represents SSH_MSG_CHANNEL_EXTENDED_DATA message.
  5. /// </summary>
  6. [Message("SSH_MSG_CHANNEL_EXTENDED_DATA", 95)]
  7. public class ChannelExtendedDataMessage : ChannelMessage
  8. {
  9. /// <summary>
  10. /// Gets message data type code.
  11. /// </summary>
  12. public uint DataTypeCode { get; private set; }
  13. /// <summary>
  14. /// Gets message data.
  15. /// </summary>
  16. public byte[] Data { get; private set; }
  17. /// <summary>
  18. /// Initializes a new instance of the <see cref="ChannelExtendedDataMessage"/> class.
  19. /// </summary>
  20. public ChannelExtendedDataMessage()
  21. {
  22. }
  23. /// <summary>
  24. /// Initializes a new instance of the <see cref="ChannelExtendedDataMessage"/> class.
  25. /// </summary>
  26. /// <param name="localChannelNumber">The local channel number.</param>
  27. public ChannelExtendedDataMessage(uint localChannelNumber, uint dataTypeCode, byte[] data)
  28. {
  29. this.LocalChannelNumber = localChannelNumber;
  30. this.DataTypeCode = dataTypeCode;
  31. this.Data = data;
  32. }
  33. /// <summary>
  34. /// Loads the data.
  35. /// </summary>
  36. protected override void LoadData()
  37. {
  38. base.LoadData();
  39. this.DataTypeCode = this.ReadUInt32();
  40. this.Data = this.ReadBinaryString();
  41. }
  42. /// <summary>
  43. /// Saves the data.
  44. /// </summary>
  45. protected override void SaveData()
  46. {
  47. base.SaveData();
  48. this.Write(this.DataTypeCode);
  49. this.WriteBinaryString(this.Data);
  50. }
  51. }
  52. }