From 8dd5d25eeed7db06935d84fb70619e2c8ae634a2 Mon Sep 17 00:00:00 2001
From: Rob Swindell <rob@synchro.net>
Date: Mon, 12 Dec 2022 18:43:12 -0800
Subject: [PATCH] Publish event log messages to MQTT too

---
 src/sbbs3/main.cpp | 3 +++
 src/sbbs3/mqtt.c   | 3 +++
 src/sbbs3/mqtt.h   | 1 +
 3 files changed, 7 insertions(+)

diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp
index 6d60c8567d..97c986ca5f 100644
--- a/src/sbbs3/main.cpp
+++ b/src/sbbs3/main.cpp
@@ -227,6 +227,9 @@ int eputs(int level, const char *str)
 	if(*str == 0)
 		return 0;
 
+	if(startup != NULL)
+		mqtt_lputs(&startup->mqtt, TOPIC_EVENT, level, str);
+
 	if(level <= LOG_ERR) {
 		char errmsg[1024];
 		SAFEPRINTF(errmsg, "evnt %s", str);
diff --git a/src/sbbs3/mqtt.c b/src/sbbs3/mqtt.c
index cebbcf23e4..3b98f81e38 100644
--- a/src/sbbs3/mqtt.c
+++ b/src/sbbs3/mqtt.c
@@ -54,6 +54,9 @@ static char* format_topic(struct mqtt* mqtt, enum topic_depth depth, char* str,
 		case TOPIC_SERVER:
 			safe_snprintf(str, size, "sbbs/%s/%s/%s/%s", mqtt->cfg->sys_id, mqtt->host, mqtt->server, sbuf);
 			break;
+		case TOPIC_EVENT:
+			safe_snprintf(str, size, "sbbs/%s/%s/event/%s", mqtt->cfg->sys_id, mqtt->host, sbuf);
+			break;
 		default:
 			safe_snprintf(str, size, "%s", sbuf);
 			break;
diff --git a/src/sbbs3/mqtt.h b/src/sbbs3/mqtt.h
index bf24c7b8af..ecc5aafe66 100644
--- a/src/sbbs3/mqtt.h
+++ b/src/sbbs3/mqtt.h
@@ -46,6 +46,7 @@ enum topic_depth {
 	TOPIC_ROOT,
 	TOPIC_BBS,
 	TOPIC_HOST,
+	TOPIC_EVENT,
 	TOPIC_SERVER
 };
 
-- 
GitLab