diff --git a/src/Renci.SshNet/Messages/Transport/IgnoreMessage.cs b/src/Renci.SshNet/Messages/Transport/IgnoreMessage.cs
index 5d07f1d00..d657d2d46 100644
--- a/src/Renci.SshNet/Messages/Transport/IgnoreMessage.cs
+++ b/src/Renci.SshNet/Messages/Transport/IgnoreMessage.cs
@@ -1,6 +1,4 @@
using System;
-using System.Globalization;
-using Renci.SshNet.Abstractions;
namespace Renci.SshNet.Messages.Transport
{
@@ -13,7 +11,8 @@ public class IgnoreMessage : Message
internal const byte MessageNumber = 2;
///
- /// Gets ignore message data if any.
+ /// Gets ignore message data if this message has been initialised
+ /// with data to be sent. Otherwise, returns an empty array.
///
public byte[] Data { get; private set; }
@@ -61,21 +60,7 @@ protected override int BufferCapacity
///
protected override void LoadData()
{
- var dataLength = ReadUInt32();
- if (dataLength > int.MaxValue)
- {
- throw new NotSupportedException(string.Format(CultureInfo.CurrentCulture, "Data longer than {0} is not supported.", int.MaxValue));
- }
-
- if (dataLength > (DataStream.Length - DataStream.Position))
- {
- DiagnosticAbstraction.Log("SSH_MSG_IGNORE: Length exceeds data bytes, data ignored.");
- Data = Array.Empty();
- }
- else
- {
- Data = ReadBytes((int) dataLength);
- }
+ // Do nothing - this data is supposed to be ignored.
}
///
diff --git a/test/Renci.SshNet.Tests/Classes/Messages/Transport/IgnoreMessageTest.cs b/test/Renci.SshNet.Tests/Classes/Messages/Transport/IgnoreMessageTest.cs
index 1c82d3a6d..ecdbf3310 100644
--- a/test/Renci.SshNet.Tests/Classes/Messages/Transport/IgnoreMessageTest.cs
+++ b/test/Renci.SshNet.Tests/Classes/Messages/Transport/IgnoreMessageTest.cs
@@ -1,5 +1,4 @@
using System;
-using System.Globalization;
using System.Linq;
using Renci.SshNet.Common;
using Renci.SshNet.Messages.Transport;
@@ -80,7 +79,7 @@ public void GetBytes()
}
[TestMethod]
- public void Load()
+ public void Load_IgnoresData()
{
var ignoreMessage = new IgnoreMessage(_data);
var bytes = ignoreMessage.GetBytes();
@@ -89,47 +88,7 @@ public void Load()
target.Load(bytes, 1, bytes.Length - 1);
Assert.IsNotNull(target.Data);
- Assert.AreEqual(_data.Length, target.Data.Length);
- Assert.IsTrue(target.Data.SequenceEqual(_data));
- }
-
- [TestMethod]
- public void Load_ShouldIgnoreDataWhenItsLengthIsGreatherThanItsActualBytes()
- {
- var ssh = new SshDataStream(1);
- ssh.WriteByte(2); // Type
- ssh.Write(5u); // Data length
- ssh.Write(new byte[3]); // Data
-
- var ignoreMessageBytes = ssh.ToArray();
-
- var ignoreMessage = new IgnoreMessage();
- ignoreMessage.Load(ignoreMessageBytes, 1, ignoreMessageBytes.Length - 1);
- Assert.IsNotNull(ignoreMessage.Data);
- Assert.AreEqual(0, ignoreMessage.Data.Length);
- }
-
- [TestMethod]
- public void Load_ShouldThrowNotSupportedExceptionWhenDataLengthIsGreaterThanInt32MaxValue()
- {
- var ssh = new SshDataStream(1);
- ssh.WriteByte(2); // Type
- ssh.Write(uint.MaxValue); // Data length
- ssh.Write(new byte[3]);
-
- var ignoreMessageBytes = ssh.ToArray();
- var ignoreMessage = new IgnoreMessage();
-
- try
- {
- ignoreMessage.Load(ignoreMessageBytes, 1, ignoreMessageBytes.Length - 1);
- Assert.Fail();
- }
- catch (NotSupportedException ex)
- {
- Assert.IsNull(ex.InnerException);
- Assert.AreEqual(string.Format(CultureInfo.CurrentCulture, "Data longer than {0} is not supported.", int.MaxValue), ex.Message);
- }
+ Assert.AreEqual(0, target.Data.Length);
}
}
}