From d7b552fce23ecc41502639e70bdf17b36f32374c Mon Sep 17 00:00:00 2001 From: JanEggers Date: Tue, 13 Oct 2020 15:57:21 +0200 Subject: [PATCH] renaming and added cast --- Build/MQTTnet.nuspec | 4 +++- Source/MQTTnet/Client/MqttClient.cs | 4 ++-- Source/MQTTnet/Server/MqttClientSessionsManager.cs | 4 ++-- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/Build/MQTTnet.nuspec b/Build/MQTTnet.nuspec index d8558191..fd4bc2e0 100644 --- a/Build/MQTTnet.nuspec +++ b/Build/MQTTnet.nuspec @@ -14,8 +14,10 @@ * [Client] Fixed wrong value for "ClientWasConnected" in "MqttClientDisconnectedEventArgs" #976 (thanks to @dbeinder). * [Client] Added direct support for Amazon AWS connections (requires .NET Core 3.1) (thanks to @henning-krause). +* [Client] handle disconnect package and propagate disconnect reason code (thanks to @JanEggers) * [ManagedClient] Exposed the internal MQTT client. -* [Server] Added client message queue interceptor for QoS level (tahnks to @msallin). +* [Server] Added client message queue interceptor for QoS level (thanks to @msallin). +* [Server] improved behavior when multiple connections fight over a session (thanks to @JanEggers) Copyright Christian Kratky 2016-2020 MQTT Message Queue Telemetry Transport MQTTClient MQTTServer Server MQTTBroker Broker NETStandard IoT InternetOfThings Messaging Hardware Arduino Sensor Actuator M2M ESP Smart Home Cities Automation Xamarin Blazor diff --git a/Source/MQTTnet/Client/MqttClient.cs b/Source/MQTTnet/Client/MqttClient.cs index 51a3612f..44cd85cd 100644 --- a/Source/MQTTnet/Client/MqttClient.cs +++ b/Source/MQTTnet/Client/MqttClient.cs @@ -561,7 +561,7 @@ namespace MQTTnet.Client { await SendAsync(new MqttPingRespPacket(), cancellationToken).ConfigureAwait(false); } - else if (packet is MqttDisconnectPacket disc) + else if (packet is MqttDisconnectPacket disconnectPacket) { // Also dispatch disconnect to waiting threads to generate a proper exception. _packetDispatcher.Dispatch(packet); @@ -569,7 +569,7 @@ namespace MQTTnet.Client await DisconnectAsync(new MqttClientDisconnectOptions() { // todo conversion - ReasonCode = disc.ReasonCode + ReasonCode = (MqttClientDisconnectReason)(disconnectPacket.ReasonCode ?? MqttDisconnectReasonCode.UnspecifiedError) }, cancellationToken).ConfigureAwait(false); } else if (packet is MqttAuthPacket authPacket) diff --git a/Source/MQTTnet/Server/MqttClientSessionsManager.cs b/Source/MQTTnet/Server/MqttClientSessionsManager.cs index 6935bcbe..84fa7251 100644 --- a/Source/MQTTnet/Server/MqttClientSessionsManager.cs +++ b/Source/MQTTnet/Server/MqttClientSessionsManager.cs @@ -391,9 +391,9 @@ namespace MQTTnet.Server _connections.AddOrUpdate(connectPacket.ClientId, key => { return connection; - }, (key, tempexistingConnection) => + }, (key, tempExistingConnection) => { - existingConnection = tempexistingConnection; + existingConnection = tempExistingConnection; return connection; });