1
0
Fork 0
mirror of https://git.rwth-aachen.de/acs/public/villas/node/ synced 2025-03-09 00:00:00 +01:00

mqtt: improve error message (closes #225)

This commit is contained in:
Steffen Vogel 2019-02-12 19:56:36 +01:00
parent 2cc6423c61
commit 0521ded161

View file

@ -63,7 +63,7 @@ static void mqtt_connect_cb(struct mosquitto *mosq, void *userdata, int result)
if (m->subscribe) {
ret = mosquitto_subscribe(m->client, NULL, m->subscribe, m->qos);
if (ret)
warning("MQTT: failed to subscribe to topic '%s' for node %s", m->subscribe, node_name(n));
warning("MQTT: failed to subscribe to topic '%s' for node %s: %s", m->subscribe, node_name(n), mosquitto_strerror(ret));
}
else
warning("MQTT: no subscribe for node %s as no subscribe topic is given", node_name(n));
@ -207,11 +207,11 @@ int mqtt_parse(struct node *n, json_t *cfg)
// Some checks
ret = mosquitto_sub_topic_check(m->subscribe);
if (ret != MOSQ_ERR_SUCCESS)
error("Invalid subscribe topic: '%s' for node %s", m->subscribe, node_name(n));
error("Invalid subscribe topic: '%s' for node %s: %s", m->subscribe, node_name(n), mosquitto_strerror(ret));
ret = mosquitto_pub_topic_check(m->publish);
if (ret != MOSQ_ERR_SUCCESS)
error("Invalid publish topic: '%s' for node %s", m->publish, node_name(n));
error("Invalid publish topic: '%s' for node %s: %s", m->publish, node_name(n), mosquitto_strerror(ret));
return 0;
}
@ -283,17 +283,17 @@ int mqtt_start(struct node *n)
if (m->username && m->password) {
ret = mosquitto_username_pw_set(m->client, m->username, m->password);
if (ret)
return ret;
goto mosquitto_error;
}
if (m->ssl.enabled) {
ret = mosquitto_tls_set(m->client, m->ssl.cafile, m->ssl.capath, m->ssl.certfile, m->ssl.keyfile, NULL);
if (ret)
return ret;
goto mosquitto_error;
ret = mosquitto_tls_insecure_set(m->client, m->ssl.insecure);
if (ret)
return ret;
goto mosquitto_error;
}
mosquitto_log_callback_set(m->client, mqtt_log_cb);
@ -320,13 +320,18 @@ int mqtt_start(struct node *n)
ret = mosquitto_connect(m->client, m->host, m->port, m->keepalive);
if (ret)
return ret;
goto mosquitto_error;
ret = mosquitto_loop_start(m->client);
if (ret)
return ret;
goto mosquitto_error;
return 0;
mosquitto_error:
warning("MQTT: %s", mosquitto_strerror(ret));
return ret;
}
int mqtt_stop(struct node *n)
@ -336,17 +341,22 @@ int mqtt_stop(struct node *n)
ret = mosquitto_disconnect(m->client);
if (ret)
return ret;
goto mosquitto_error;
ret = mosquitto_loop_stop(m->client, 0);
if (ret)
return ret;
goto mosquitto_error;
ret = io_destroy(&m->io);
if (ret)
return ret;
return 0;
mosquitto_error:
warning("MQTT: %s", mosquitto_strerror(ret));
return ret;
}
int mqtt_type_start(struct super_node *sn)
@ -355,9 +365,14 @@ int mqtt_type_start(struct super_node *sn)
ret = mosquitto_lib_init();
if (ret)
return ret;
goto mosquitto_error;
return 0;
mosquitto_error:
warning("MQTT: %s", mosquitto_strerror(ret));
return ret;
}
int mqtt_type_stop()
@ -366,9 +381,14 @@ int mqtt_type_stop()
ret = mosquitto_lib_cleanup();
if (ret)
return ret;
goto mosquitto_error;
return 0;
mosquitto_error:
warning("MQTT: %s", mosquitto_strerror(ret));
return ret;
}
int mqtt_read(struct node *n, struct sample *smps[], unsigned cnt, unsigned *release)