diff --git a/src/DtronixMessageQueue.Tests.Gui/Tests/Connection/ConnectionPerformanceTest.cs b/src/DtronixMessageQueue.Tests.Gui/Tests/Connection/ConnectionPerformanceTest.cs index 930836a..a905597 100644 --- a/src/DtronixMessageQueue.Tests.Gui/Tests/Connection/ConnectionPerformanceTest.cs +++ b/src/DtronixMessageQueue.Tests.Gui/Tests/Connection/ConnectionPerformanceTest.cs @@ -57,6 +57,7 @@ public override void StartClient() var configClients = ActualControl.ConfigClients; var configPackageLength = ActualControl.ConfigBytesPerMessage; var configPeriod = ActualControl.ConfigMessagePeriod; + var addressParts = TestController.ControllClient.Config.Address.Split(':'); Task.Run(() => { @@ -64,7 +65,7 @@ public override void StartClient() { var client = new MqClient(new MqConfig { - Address = TestController.ControllClient.Config.Address + ":2121", + Address = addressParts[0] + ":2121", PingFrequency = 500 }); diff --git a/src/DtronixMessageQueue.Tests.Gui/Tests/Echo/EchoPerformanceTest.cs b/src/DtronixMessageQueue.Tests.Gui/Tests/Echo/EchoPerformanceTest.cs index b9632c4..316ee7e 100644 --- a/src/DtronixMessageQueue.Tests.Gui/Tests/Echo/EchoPerformanceTest.cs +++ b/src/DtronixMessageQueue.Tests.Gui/Tests/Echo/EchoPerformanceTest.cs @@ -56,12 +56,13 @@ public override void StartClient() { var configClientConnections = ActualControl.ConfigClients; var configFrameSize = ActualControl.ConfigFrameSize; + var addressParts = TestController.ControllClient.Config.Address.Split(':'); for (int i = 0; i < configClientConnections; i++) { var client = new MqClient(new MqConfig { - Address = TestController.ControllClient.Config.Address + ":2121", + Address = addressParts[0] + ":2121", PingFrequency = 500 }); diff --git a/src/DtronixMessageQueue.Tests.Gui/Tests/MaxThroughput/MaxThroughputPerformanceTest.cs b/src/DtronixMessageQueue.Tests.Gui/Tests/MaxThroughput/MaxThroughputPerformanceTest.cs index 9647e80..ce1efba 100644 --- a/src/DtronixMessageQueue.Tests.Gui/Tests/MaxThroughput/MaxThroughputPerformanceTest.cs +++ b/src/DtronixMessageQueue.Tests.Gui/Tests/MaxThroughput/MaxThroughputPerformanceTest.cs @@ -58,12 +58,13 @@ public override void StartClient() var configClientConnections = ActualControl.ConfigClients; var configFrames = ActualControl.ConfigFrames; var configFrameSize = ActualControl.ConfigFrameSize; + var addressParts = TestController.ControllClient.Config.Address.Split(':'); for (int i = 0; i < configClientConnections; i++) { var client = new MqClient(new MqConfig { - Address = TestController.ControllClient.Config.Address + ":2121", + Address = addressParts[0] + ":2121", PingFrequency = 500 }); diff --git a/src/DtronixMessageQueue/MqSession.cs b/src/DtronixMessageQueue/MqSession.cs index c5a1b90..44424e0 100644 --- a/src/DtronixMessageQueue/MqSession.cs +++ b/src/DtronixMessageQueue/MqSession.cs @@ -159,11 +159,16 @@ private void ProcessIncomingQueue() while (_inboxBytes.TryDequeue(out buffer)) { - if (CurrentState == State.Connected) - _receivingSemaphore.Release(); + if (CurrentState != State.Connected) + return; + + _receivingSemaphore.Release(); if (buffer == null) + { Close(CloseReason.Closing); + return; + } try { @@ -182,6 +187,9 @@ private void ProcessIncomingQueue() for (var i = 0; i < frameCount; i++) { + if (CurrentState != State.Connected) + return; + var frame = _frameBuilder.Frames.Dequeue(); // Do nothing if this is a ping frame. @@ -250,6 +258,11 @@ public override void Close(CloseReason reason) if (CurrentState == State.Closed && reason != CloseReason.ConnectionRefused) return; + if (reason == CloseReason.ProtocolError) + { + + } + MqFrame closeFrame = null; if (CurrentState == State.Connected || reason == CloseReason.ConnectionRefused) {