projects
/
collectd.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge pull request #2168 from maryamtahhan/feat_libvirt_upstream
[collectd.git]
/
src
/
mqtt.c
diff --git
a/src/mqtt.c
b/src/mqtt.c
index
95deb00
..
a962514
100644
(file)
--- a/
src/mqtt.c
+++ b/
src/mqtt.c
@@
-448,6
+448,7
@@
static int publish(mqtt_client_conf_t *conf, char const *topic,
* measure; we will try to reconnect the next time we have to publish a
* message */
conf->connected = 0;
* measure; we will try to reconnect the next time we have to publish a
* message */
conf->connected = 0;
+ mosquitto_disconnect(conf->mosq);
pthread_mutex_unlock(&conf->lock);
return (-1);
pthread_mutex_unlock(&conf->lock);
return (-1);
@@
-461,6
+462,7
@@
static int format_topic(char *buf, size_t buf_len, data_set_t const *ds,
value_list_t const *vl, mqtt_client_conf_t *conf) {
char name[MQTT_MAX_TOPIC_SIZE];
int status;
value_list_t const *vl, mqtt_client_conf_t *conf) {
char name[MQTT_MAX_TOPIC_SIZE];
int status;
+ char *c;
if ((conf->topic_prefix == NULL) || (conf->topic_prefix[0] == 0))
return (FORMAT_VL(buf, buf_len, vl));
if ((conf->topic_prefix == NULL) || (conf->topic_prefix[0] == 0))
return (FORMAT_VL(buf, buf_len, vl));
@@
-473,6
+475,10
@@
static int format_topic(char *buf, size_t buf_len, data_set_t const *ds,
if ((status < 0) || (((size_t)status) >= buf_len))
return (ENOMEM);
if ((status < 0) || (((size_t)status) >= buf_len))
return (ENOMEM);
+ while((c = strchr(buf, '#')) || (c = strchr(buf, '+'))) {
+ *c = '_';
+ }
+
return (0);
} /* int format_topic */
return (0);
} /* int format_topic */
@@
-603,9
+609,9
@@
static int mqtt_config_publisher(oconfig_item_t *ci) {
}
ssnprintf(cb_name, sizeof(cb_name), "mqtt/%s", conf->name);
}
ssnprintf(cb_name, sizeof(cb_name), "mqtt/%s", conf->name);
- user_data_t user_data = {.data = conf};
-
-
plugin_register_write(cb_name, mqtt_write, &user_data
);
+ plugin_register_write(cb_name, mqtt_write, &(user_data_t){
+ .data = conf,
+
}
);
return (0);
} /* mqtt_config_publisher */
return (0);
} /* mqtt_config_publisher */
@@
-734,7
+740,8
@@
static int mqtt_init(void) {
status = plugin_thread_create(&subscribers[i]->thread,
/* attrs = */ NULL,
/* func = */ subscribers_thread,
status = plugin_thread_create(&subscribers[i]->thread,
/* attrs = */ NULL,
/* func = */ subscribers_thread,
- /* args = */ subscribers[i]);
+ /* args = */ subscribers[i],
+ /* name = */ "mqtt");
if (status != 0) {
char errbuf[1024];
ERROR("mqtt plugin: pthread_create failed: %s",
if (status != 0) {
char errbuf[1024];
ERROR("mqtt plugin: pthread_create failed: %s",
@@
-750,5
+757,3
@@
void module_register(void) {
plugin_register_complex_config("mqtt", mqtt_config);
plugin_register_init("mqtt", mqtt_init);
} /* void module_register */
plugin_register_complex_config("mqtt", mqtt_config);
plugin_register_init("mqtt", mqtt_init);
} /* void module_register */
-
-/* vim: set sw=4 sts=4 et fdm=marker : */