From 6d804810804e09c30b348ce7287ac175e41d7881 Mon Sep 17 00:00:00 2001 From: Thomas Schmucker Date: Sun, 3 Nov 2024 22:07:54 +0100 Subject: publisher hinzugefügt MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/mqtt.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'src/mqtt.c') diff --git a/src/mqtt.c b/src/mqtt.c index ce89b0b..32e2ea9 100644 --- a/src/mqtt.c +++ b/src/mqtt.c @@ -30,7 +30,9 @@ mqtt_connect(const char *clientid, // NOLINT return NULL; } - mosquitto_message_callback_set(client, callback); + if ( callback ) { + mosquitto_message_callback_set(client, callback); + } err = mosquitto_connect(client, hostname, port, KEEPALIVE); if ( err != MOSQ_ERR_SUCCESS ) { @@ -45,8 +47,10 @@ mqtt_connect(const char *clientid, // NOLINT void mqtt_run(struct mosquitto *client, const char *topics[], const volatile bool *quit) { + int *mid = NULL; + for ( size_t idx = 0; topics[idx] != NULL; ++idx ) { - mosquitto_subscribe(client, NULL, topics[idx], 0); + mosquitto_subscribe(client, mid, topics[idx], 0); } while ( !*quit ) { @@ -59,6 +63,10 @@ mqtt_run(struct mosquitto *client, const char *topics[], const volatile bool *qu mosquitto_reconnect(client); } } + + for ( size_t idx = 0; topics[idx] != NULL; ++idx ) { + mosquitto_unsubscribe(client, mid, topics[idx]); + } } void -- cgit v1.3