Minor tweaks to PR.

pull/2166/head
Roger A. Light 5 years ago
parent 87cf3680e5
commit 720ce01faf

@ -895,29 +895,24 @@ int db__message_reconnect_reset(struct mosquitto *context)
int db__message_remove_incoming(struct mosquitto* context, uint16_t mid) int db__message_remove_incoming(struct mosquitto* context, uint16_t mid)
{ {
struct mosquitto_client_msg* tail, * tmp; struct mosquitto_client_msg *tail, *tmp;
bool deleted = false;
if (!context) return MOSQ_ERR_INVAL; if(!context) return MOSQ_ERR_INVAL;
DL_FOREACH_SAFE(context->msgs_in.inflight, tail, tmp) { DL_FOREACH_SAFE(context->msgs_in.inflight, tail, tmp){
if (tail->mid == mid) { if(tail->mid == mid) {
if (tail->store->qos != 2) { if(tail->store->qos != 2){
return MOSQ_ERR_PROTOCOL; return MOSQ_ERR_PROTOCOL;
} }
db__message_remove(&context->msgs_in, tail); db__message_remove(&context->msgs_in, tail);
deleted = true; return MOSQ_ERR_SUCCESS;
} }
} }
if (deleted) { return MOSQ_ERR_NOT_FOUND;
return MOSQ_ERR_SUCCESS;
}
else {
return MOSQ_ERR_NOT_FOUND;
}
} }
int db__message_release_incoming(struct mosquitto *context, uint16_t mid) int db__message_release_incoming(struct mosquitto *context, uint16_t mid)
{ {
struct mosquitto_client_msg *tail, *tmp; struct mosquitto_client_msg *tail, *tmp;

@ -286,7 +286,12 @@ int handle__publish(struct mosquitto *context)
db__message_store_find(context, msg->source_mid, &stored); 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); 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); db__message_remove_incoming(context, msg->source_mid);
stored = NULL; stored = NULL;

Loading…
Cancel
Save