From 4fc0e2f52b2b9a02d0a52b2af05d22a632b1445d Mon Sep 17 00:00:00 2001 From: tomoaki Date: Mon, 2 Aug 2021 07:25:28 +0900 Subject: [PATCH] Bugfix 0f #234 Signed-off-by: tomoaki --- MQTTSNGateway/src/MQTTSNGWClientList.cpp | 25 ++++++++++++------------ 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/MQTTSNGateway/src/MQTTSNGWClientList.cpp b/MQTTSNGateway/src/MQTTSNGWClientList.cpp index a4dd62f..b7919f2 100644 --- a/MQTTSNGateway/src/MQTTSNGWClientList.cpp +++ b/MQTTSNGateway/src/MQTTSNGWClientList.cpp @@ -404,38 +404,37 @@ Client* ClientList::createClient(SensorNetAddress* addr, MQTTSNString* clientId, Client* ClientList::createPredefinedTopic(MQTTSNString* clientId, string topicName, uint16_t topicId, bool aggregate) { - Client *client = nullptr; - if (topicId == 0) { WRITELOG("Invalid TopicId. Predefined Topic %s, TopicId is 0. \n", topicName.c_str()); - goto exit; + return nullptr; } if (strcmp(clientId->cstring, common_topic) == 0) { _gateway->getTopics()->add((const char*) topicName.c_str(), topicId); - goto exit; + return nullptr; } else { - Client* client = getClient(clientId); + Client *client = getClient(clientId); if (_authorize && client == nullptr) { - goto exit; + return nullptr; } - client = createClient(NULL, clientId, aggregate); - if (client) + client = createClient(NULL, clientId, aggregate); // <=== BUGFIX + if (client == nullptr) { - // create Topic & Add it - client->getTopics()->add((const char*) topicName.c_str(), topicId); - client->_hasPredefTopic = true; + return nullptr; } + + // create Topic & Add it + client->getTopics()->add((const char*) topicName.c_str(), topicId); + client->_hasPredefTopic = true; + return client; } -exit: - return client; } uint16_t ClientList::getClientCount()