From b32be860255e1ea526d1ac22b80918a4473f587f Mon Sep 17 00:00:00 2001 From: "Rob Swindell (on Windows)" <rob@synchro.net> Date: Thu, 10 Aug 2023 12:29:48 -0700 Subject: [PATCH] Prioritize the node/+/input topics over the node/+/set/+ topics --- src/sbbs3/mqtt.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/sbbs3/mqtt.c b/src/sbbs3/mqtt.c index fe888f3e54..16d9e7d810 100644 --- a/src/sbbs3/mqtt.c +++ b/src/sbbs3/mqtt.c @@ -481,6 +481,14 @@ static void mqtt_message_received(struct mosquitto* mosq, void* cbdata, const st if(mqtt->startup->type == SERVER_TERM) { bbs_startup_t* bbs_startup = (bbs_startup_t*)mqtt->startup; + for(int i = bbs_startup->first_node; i <= bbs_startup->last_node; i++) { + mqtt_topic(mqtt, TOPIC_BBS, topic, sizeof(topic), "node/%d/input", i); + if(strcmp(msg->topic, topic) != 0) + continue; + if(bbs_startup->node_inbuf != NULL && bbs_startup->node_inbuf[i - 1] != NULL) + RingBufWrite(bbs_startup->node_inbuf[i - 1], msg->payload, msg->payloadlen); + return; + } for(int i = bbs_startup->first_node; i <= bbs_startup->last_node; i++) { if(strcmp(msg->topic, mqtt_topic(mqtt, TOPIC_BBS, topic, sizeof(topic), "node/%d/set/status", i)) == 0) { set_node_status(mqtt->cfg, i, mqtt_message_value(msg, 0)); @@ -511,14 +519,6 @@ static void mqtt_message_received(struct mosquitto* mosq, void* cbdata, const st return; } } - for(int i = bbs_startup->first_node; i <= bbs_startup->last_node; i++) { - mqtt_topic(mqtt, TOPIC_BBS, topic, sizeof(topic), "node/%d/input", i); - if(strcmp(msg->topic, topic) != 0) - continue; - if(bbs_startup->node_inbuf != NULL && bbs_startup->node_inbuf[i - 1] != NULL) - RingBufWrite(bbs_startup->node_inbuf[i - 1], msg->payload, msg->payloadlen); - return; - } } if(strcmp(msg->topic, mqtt_topic(mqtt, TOPIC_HOST, topic, sizeof(topic), "recycle")) == 0 || strcmp(msg->topic, mqtt_topic(mqtt, TOPIC_SERVER, topic, sizeof(topic), "recycle")) == 0) { -- GitLab