From be91ed4a2c2fe0b277aed2705ec2a7ef6ef29528 Mon Sep 17 00:00:00 2001 From: Tijn Kooijmans Date: Fri, 21 Jul 2017 21:31:04 +0200 Subject: [PATCH] added mqtt unsubscribe function --- include/mqtt.h | 1 + mqtt.c | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/include/mqtt.h b/include/mqtt.h index 53bff02..44d2428 100644 --- a/include/mqtt.h +++ b/include/mqtt.h @@ -113,6 +113,7 @@ mqtt_client *mqtt_start(mqtt_settings *mqtt_info); void mqtt_stop(); void mqtt_task(void *pvParameters); void mqtt_subscribe(mqtt_client *client, const char *topic, uint8_t qos); +void mqtt_unsubscribe(mqtt_client *client, const char *topic); void mqtt_publish(mqtt_client* client, const char *topic, const char *data, int len, int qos, int retain); void mqtt_destroy(); #endif diff --git a/mqtt.c b/mqtt.c index 80c12ee..75bc4b5 100644 --- a/mqtt.c +++ b/mqtt.c @@ -595,6 +595,16 @@ void mqtt_subscribe(mqtt_client *client, const char *topic, uint8_t qos) mqtt_queue(client); } + +void mqtt_unsubscribe(mqtt_client *client, const char *topic) +{ + client->mqtt_state.outbound_message = mqtt_msg_unsubscribe(&client->mqtt_state.mqtt_connection, + topic, + &client->mqtt_state.pending_msg_id); + mqtt_info("Queue unsubscribe, topic\"%s\", id: %d", topic, client->mqtt_state.pending_msg_id); + mqtt_queue(client); +} + void mqtt_publish(mqtt_client* client, const char *topic, const char *data, int len, int qos, int retain) {