|
|
@@ -1,5 +1,7 @@
|
|
|
using System;
|
|
|
using System.Linq;
|
|
|
+using System.Net.Sockets;
|
|
|
+using System.Text;
|
|
|
using System.Text.RegularExpressions;
|
|
|
using System.Threading;
|
|
|
|
|
|
@@ -7,6 +9,7 @@ using Microsoft.VisualStudio.TestTools.UnitTesting;
|
|
|
|
|
|
using Moq;
|
|
|
|
|
|
+using Renci.SshNet.Messages.Connection;
|
|
|
using Renci.SshNet.Messages.Transport;
|
|
|
|
|
|
namespace Renci.SshNet.Tests.Classes
|
|
|
@@ -59,7 +62,7 @@ namespace Renci.SshNet.Tests.Classes
|
|
|
|
|
|
ServerListener.BytesReceived += ServerListener_BytesReceived;
|
|
|
|
|
|
- void ServerListener_BytesReceived(byte[] bytesReceived, System.Net.Sockets.Socket socket)
|
|
|
+ void ServerListener_BytesReceived(byte[] bytesReceived, Socket socket)
|
|
|
{
|
|
|
if (bytesReceived.Length > 5 && bytesReceived[5] == 20)
|
|
|
{
|
|
|
@@ -106,6 +109,37 @@ namespace Renci.SshNet.Tests.Classes
|
|
|
Assert.AreEqual(1, ServerBytesReceivedRegister.Count);
|
|
|
}
|
|
|
|
|
|
+ [TestMethod]
|
|
|
+ [DataRow(true)]
|
|
|
+ [DataRow(false)]
|
|
|
+ public void UnknownGlobalRequestWithWantReply(bool wantReply)
|
|
|
+ {
|
|
|
+ Thread.Sleep(100);
|
|
|
+
|
|
|
+ ServerBytesReceivedRegister.Clear();
|
|
|
+
|
|
|
+ var globalRequest =
|
|
|
+ new GlobalRequestMessage(Encoding.ASCII.GetBytes("unknown-request"), wantReply).GetPacket(8, null);
|
|
|
+
|
|
|
+ ServerSocket.Send(globalRequest, 4, globalRequest.Length - 4, SocketFlags.None);
|
|
|
+
|
|
|
+ Thread.Sleep(100);
|
|
|
+
|
|
|
+ if (wantReply)
|
|
|
+ {
|
|
|
+ // Should have sent a failure reply.
|
|
|
+ Assert.AreEqual(1, ServerBytesReceivedRegister.Count);
|
|
|
+ Assert.AreEqual(82, ServerBytesReceivedRegister[0][5], "Expected to have sent SSH_MSG_REQUEST_FAILURE(82)");
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ // Should not have sent any reply.
|
|
|
+ Assert.AreEqual(0, ServerBytesReceivedRegister.Count);
|
|
|
+ }
|
|
|
+
|
|
|
+ Assert.AreEqual(0, ErrorOccurredRegister.Count);
|
|
|
+ }
|
|
|
+
|
|
|
[TestMethod]
|
|
|
public void SessionIdShouldReturnExchangeHashCalculatedFromKeyExchangeInitMessage()
|
|
|
{
|