From ca2a7636909ad25fa6ece56ec7a5a1cc70a0b2d1 Mon Sep 17 00:00:00 2001
From: "Rob Swindell (on Windows 11)" <rob@synchro.net>
Date: Wed, 13 Dec 2023 18:52:54 -0800
Subject: [PATCH] Don't try to MQTT publish node output/status if the
 broker-connect failed

Fixes issue #679
---
 src/sbbs3/main.cpp    | 2 +-
 src/sbbs3/putnode.cpp | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp
index 2a53749a72..171de80fd7 100644
--- a/src/sbbs3/main.cpp
+++ b/src/sbbs3/main.cpp
@@ -2544,7 +2544,7 @@ void output_thread(void* arg)
 				RingBufWrite(startup->node_spybuf[sbbs->cfg.node_num-1],buf+bufbot,i);
 			}
 			/* Spy on the user remotely */
-			if(sbbs->cfg.mqtt.enabled) {
+			if(sbbs->cfg.mqtt.enabled && mqtt.handle != NULL) {
 				int result = mqtt_pub_message(&mqtt, TOPIC_BBS, spy_topic, buf+bufbot, i, /* retain: */false);
 				if(result != MQTT_SUCCESS)
 					lprintf(LOG_WARNING, "%s ERROR %d (%d) publishing node output (%u bytes): %s"
diff --git a/src/sbbs3/putnode.cpp b/src/sbbs3/putnode.cpp
index bc80f53ef2..2b539041bd 100644
--- a/src/sbbs3/putnode.cpp
+++ b/src/sbbs3/putnode.cpp
@@ -91,7 +91,7 @@ int sbbs_t::putnodedat(uint number, node_t* node)
 	}
 	pthread_mutex_unlock(&nodefile_mutex);
 
-	if(cfg.mqtt.enabled) {
+	if(cfg.mqtt.enabled && mqtt->handle != NULL) {
 		snprintf(str, sizeof(str), "%u\t%u\t%u\t%u\t%x\t%u\t%u\t%u"
 			,node->status
 			,node->action
-- 
GitLab