From 720ce01faf9e40984067580e33a64e0615b651b0 Mon Sep 17 00:00:00 2001 From: "Roger A. Light" Date: Thu, 11 Mar 2021 15:21:49 +0000 Subject: [PATCH] Minor tweaks to PR. --- src/database.c | 21 ++++++++------------- src/handle_publish.c | 7 ++++++- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/database.c b/src/database.c index 0faf998e..2ba131c5 100644 --- a/src/database.c +++ b/src/database.c @@ -895,29 +895,24 @@ int db__message_reconnect_reset(struct mosquitto *context) int db__message_remove_incoming(struct mosquitto* context, uint16_t mid) { - struct mosquitto_client_msg* tail, * tmp; - bool deleted = false; + struct mosquitto_client_msg *tail, *tmp; - if (!context) return MOSQ_ERR_INVAL; + if(!context) return MOSQ_ERR_INVAL; - DL_FOREACH_SAFE(context->msgs_in.inflight, tail, tmp) { - if (tail->mid == mid) { - if (tail->store->qos != 2) { + DL_FOREACH_SAFE(context->msgs_in.inflight, tail, tmp){ + if(tail->mid == mid) { + if(tail->store->qos != 2){ return MOSQ_ERR_PROTOCOL; } db__message_remove(&context->msgs_in, tail); - deleted = true; + return MOSQ_ERR_SUCCESS; } } - if (deleted) { - return MOSQ_ERR_SUCCESS; - } - else { - return MOSQ_ERR_NOT_FOUND; - } + return MOSQ_ERR_NOT_FOUND; } + int db__message_release_incoming(struct mosquitto *context, uint16_t mid) { struct mosquitto_client_msg *tail, *tmp; diff --git a/src/handle_publish.c b/src/handle_publish.c index 75bc8f23..4686d350 100644 --- a/src/handle_publish.c +++ b/src/handle_publish.c @@ -286,7 +286,12 @@ int handle__publish(struct mosquitto *context) db__message_store_find(context, msg->source_mid, &stored); } - if (stored && msg->source_mid != 0 && (stored->qos != msg->qos || stored->payloadlen != msg->payloadlen || strcmp(stored->topic, msg->topic) || memcmp(stored->payload, msg->payload, msg->payloadlen) )){ + if(stored && msg->source_mid != 0 && + (stored->qos != msg->qos + || stored->payloadlen != msg->payloadlen + || strcmp(stored->topic, msg->topic) + || memcmp(stored->payload, msg->payload, msg->payloadlen) )){ + log__printf(NULL, MOSQ_LOG_WARNING, "Reused message ID %u from %s detected. Clearing from storage.", msg->source_mid, context->id); db__message_remove_incoming(context, msg->source_mid); stored = NULL;