From 5ff526f92808bb2a434da0a5d3f4dda2ec2facf4 Mon Sep 17 00:00:00 2001 From: Hauke Petersen Date: Wed, 16 Dec 2020 23:33:05 +0100 Subject: [PATCH] net/asymcute: fix msgId when publishing QOS0 --- sys/net/application_layer/asymcute/asymcute.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/sys/net/application_layer/asymcute/asymcute.c b/sys/net/application_layer/asymcute/asymcute.c index 122e3837fc..440fea119b 100644 --- a/sys/net/application_layer/asymcute/asymcute.c +++ b/sys/net/application_layer/asymcute/asymcute.c @@ -879,8 +879,14 @@ int asymcute_publish(asymcute_con_t *con, asymcute_req_t *req, goto end; } - /* get message id */ - req->msg_id = _msg_id_next(con); + /* set MsgId only for QoS 1 and 2, else it must be set to 0 */ + if (((flags & MQTTSN_QOS_MASK) == MQTTSN_QOS_1) || + ((flags & MQTTSN_QOS_MASK) == MQTTSN_QOS_2)) { + req->msg_id = _msg_id_next(con); + } + else { + req->msg_id = 0; + } /* assemble message */ size_t pos = _len_set(req->data, data_len + 6);