From 519bb05aac816a612075fcb6be77185fc1469995 Mon Sep 17 00:00:00 2001 From: Christian Kratky Date: Thu, 18 Apr 2019 00:09:19 +0200 Subject: [PATCH] Fix broken code. --- .../Formatter/V5/MqttV500DataConverter.cs | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/Source/MQTTnet/Formatter/V5/MqttV500DataConverter.cs b/Source/MQTTnet/Formatter/V5/MqttV500DataConverter.cs index 2b2d2121..d6ad0aa5 100644 --- a/Source/MQTTnet/Formatter/V5/MqttV500DataConverter.cs +++ b/Source/MQTTnet/Formatter/V5/MqttV500DataConverter.cs @@ -189,14 +189,21 @@ namespace MQTTnet.Formatter.V5 public MqttClientPublishResult CreatePublishResult(MqttPubAckPacket pubAckPacket) { + var reasonCode = MqttClientPublishReasonCode.Success; + if (pubAckPacket != null) + { + // QoS 0 has no response. So we treat it as a success always. + reasonCode = (MqttClientPublishReasonCode)pubAckPacket.ReasonCode; + } + var result = new MqttClientPublishResult { // Both enums share the same values. - ReasonCode = (MqttClientPublishReasonCode)pubAckPacket.ReasonCode.Value, - ReasonString = pubAckPacket.Properties?.ReasonString, - UserProperties = pubAckPacket.Properties?.UserProperties + ReasonCode = reasonCode, + ReasonString = pubAckPacket?.Properties?.ReasonString, + UserProperties = pubAckPacket?.Properties?.UserProperties }; - + return result; } @@ -227,7 +234,7 @@ namespace MQTTnet.Formatter.V5 ReasonString = pubCompPacket.Properties?.ReasonString, UserProperties = pubCompPacket.Properties?.UserProperties }; - + if (pubRecPacket.ReasonCode.HasValue) { // Both enums share the same values.