From ad602194cf1f042d770c41b115654786c5752b26 Mon Sep 17 00:00:00 2001 From: hsaturn Date: Sat, 10 Apr 2021 16:51:56 +0200 Subject: [PATCH] Fix bug in unsubscription list --- src/TinyMqtt.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/TinyMqtt.cpp b/src/TinyMqtt.cpp index c2100f2..67f08b6 100644 --- a/src/TinyMqtt.cpp +++ b/src/TinyMqtt.cpp @@ -469,25 +469,27 @@ if (mesg->type() != MqttMessage::Type::PingReq && mesg->type() != MqttMessage::T if (!mqtt_connected) break; payload = header+2; - debug("subscribe loop"); + debug("un/subscribe loop"); while(payload < mesg->end()) { mesg->getString(payload, len); // Topic debug( " topic (" << std::string(payload, len) << ')'); - outstring("Subscribes", payload, len); + outstring(" un/subscribes", payload, len); // subscribe(Topic(payload, len)); Topic topic(payload, len); + payload += len; if ((mesg->type() & 0XF0) == MqttMessage::Type::Subscribe) + { + uint8_t qos = *payload++; + if (qos != 0) debug("Unsupported QOS" << qos << endl); subscriptions.insert(topic); + } else { auto it=subscriptions.find(topic); if (it != subscriptions.end()) subscriptions.erase(it); } - payload += len; - /* uint8_t qos =*/ *payload++; - debug(" qos=" << qos); } debug("end loop"); bclose = false;