From e934239b5d3df667e87e4ec233b00865d0046d94 Mon Sep 17 00:00:00 2001 From: gc87 Date: Thu, 16 Dec 2021 00:39:43 +0800 Subject: [PATCH] MQTT connection state update --- plugins/mqtt/plugin_mqtt.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/plugins/mqtt/plugin_mqtt.c b/plugins/mqtt/plugin_mqtt.c index 1ca5ef87..45d5bc39 100644 --- a/plugins/mqtt/plugin_mqtt.c +++ b/plugins/mqtt/plugin_mqtt.c @@ -219,6 +219,13 @@ static void *mqtt_send_loop(void *argument) if (rc) { usleep(INTERVAL); } + + // Update link state + if (MQTTC_SUCCESS != mqttc_client_is_connected(plugin->mqtt_client)) { + plugin->common.link_state = NEU_PLUGIN_LINK_STATE_DISCONNECTED; + } else { + plugin->common.link_state = NEU_PLUGIN_LINK_STATE_CONNECTED; + } } // Cleanup on quit @@ -252,7 +259,6 @@ static neu_plugin_t *mqtt_plugin_open(neu_adapter_t * adapter, neu_plugin_common_init(&plugin->common); plugin->common.adapter = adapter; plugin->common.adapter_callbacks = callbacks; - plugin->common.link_state = NEU_PLUGIN_LINK_STATE_DISCONNECTED; log_info("Success to create plugin: %s", neu_plugin_module.module_name); return plugin; @@ -289,7 +295,6 @@ static int mqtt_plugin_uninit(neu_plugin_t *plugin) mqttc_client_close(plugin->mqtt_client); plugin->mqtt_client = NULL; mqtt_option_uninit(&plugin->option); - plugin->common.link_state = NEU_PLUGIN_LINK_STATE_DISCONNECTED; // Quit publish thread pthread_mutex_lock(&plugin->running_mutex); @@ -309,8 +314,6 @@ static int mqtt_plugin_config(neu_plugin_t *plugin, neu_config_t *configs) return -1; } - plugin->common.link_state = NEU_PLUGIN_LINK_STATE_CONNECTING; - // Try close MQTT-C client mqttc_client_close(plugin->mqtt_client); plugin->mqtt_client = NULL; @@ -337,7 +340,6 @@ static int mqtt_plugin_config(neu_plugin_t *plugin, neu_config_t *configs) return -1; } - plugin->common.link_state = NEU_PLUGIN_LINK_STATE_CONNECTED; log_info("Config plugin: %s", neu_plugin_module.module_name); return 0; }