diff --git a/src/sbbs3/mqtt.c b/src/sbbs3/mqtt.c index fb24170ea723053db5a15ad674287d1d0dcc492b..d19c6fe5df64f02c7f2c75f677a702fd90eeb462 100644 --- a/src/sbbs3/mqtt.c +++ b/src/sbbs3/mqtt.c @@ -190,21 +190,23 @@ int mqtt_lputs(struct mqtt* mqtt, enum topic_depth depth, int level, const char* if(mqtt->handle != NULL && str != NULL) { int result; char sub[128]; - if(mqtt->cfg->mqtt.protocol_version < 5) { - mqtt_topic(mqtt, depth, sub, sizeof(sub), "log/%d", level); - result = mosquitto_publish_v5(mqtt->handle, - /* mid: */NULL, - /* topic: */sub, - /* payloadlen */strlen(str), - /* payload */str, - /* qos */mqtt->cfg->mqtt.publish_qos, - /* retain */true, - /* properties */NULL); - } else { + mqtt_topic(mqtt, depth, sub, sizeof(sub), "log/%d", level); + char timestamp[32]; + mosquitto_property* props = NULL; + time_to_isoDateTimeStr(time(NULL), xpTimeZone_local(), timestamp, sizeof(timestamp)); + mosquitto_property_add_string_pair(&props, MQTT_PROP_USER_PROPERTY, "time", timestamp); + result = mosquitto_publish_v5(mqtt->handle, + /* mid: */NULL, + /* topic: */sub, + /* payloadlen */strlen(str), + /* payload */str, + /* qos */mqtt->cfg->mqtt.publish_qos, + /* retain */true, + /* properties */props); + if(result == MQTT_SUCCESS) { mqtt_topic(mqtt, depth, sub, sizeof(sub), "log"); char lvl[32]; sprintf(lvl, "%d", level); - mosquitto_property* props = NULL; mosquitto_property_add_string_pair(&props, MQTT_PROP_USER_PROPERTY, "level", lvl); result = mosquitto_publish_v5(mqtt->handle, /* mid: */NULL, @@ -214,8 +216,8 @@ int mqtt_lputs(struct mqtt* mqtt, enum topic_depth depth, int level, const char* /* qos */mqtt->cfg->mqtt.publish_qos, /* retain */true, /* properties */props); - mosquitto_property_free_all(&props); } + mosquitto_property_free_all(&props); return result; } #endif