author | Florian Forster <octo@collectd.org> | |
Sat, 13 Jul 2013 09:24:39 +0000 (11:24 +0200) | ||
committer | Florian Forster <octo@collectd.org> | |
Sat, 13 Jul 2013 09:24:39 +0000 (11:24 +0200) |
src/plugin.c | patch | blob | history | |
src/write_graphite.c | patch | blob | history |
diff --git a/src/plugin.c b/src/plugin.c
index 12f002cf5baba8d3a77b6285e63cca253e04d6a8..6c7aa057cf2d272b126eadf6308a76188d3f3b1a 100644 (file)
--- a/src/plugin.c
+++ b/src/plugin.c
(void *) callback, /* user_data = */ NULL));
} /* int plugin_register_shutdown */
+static void plugin_free_data_sets (void)
+{
+ void *key;
+ void *value;
+
+ if (data_sets == NULL)
+ return;
+
+ while (c_avl_pick (data_sets, &key, &value) == 0)
+ {
+ data_set_t *ds = value;
+ /* key is a pointer to ds->type */
+
+ sfree (ds->ds);
+ sfree (ds);
+ }
+
+ c_avl_destroy (data_sets);
+ data_sets = NULL;
+} /* void plugin_free_data_sets */
+
int plugin_register_data_set (const data_set_t *ds)
{
data_set_t *ds_copy;
destroy_all_callbacks (&list_log);
plugin_free_loaded ();
+ plugin_free_data_sets ();
} /* void plugin_shutdown_all */
int plugin_dispatch_missing (const value_list_t *vl) /* {{{ */
diff --git a/src/write_graphite.c b/src/write_graphite.c
index c1a11df2d0911175b3b512fa21829c7d2139b68f..6124d33edf5a07ae26f922b1cc7a151a959b6c28 100644 (file)
--- a/src/write_graphite.c
+++ b/src/write_graphite.c
"write_graphite plugin: Connecting to %s:%s via %s failed. "
"The last error was: %s", node, service, protocol,
sstrerror (errno, errbuf, sizeof (errbuf)));
- close (cb->sock_fd);
return (-1);
}
else
wg_flush_nolock (/* timeout = */ 0, cb);
- close(cb->sock_fd);
- cb->sock_fd = -1;
+ if (cb->sock_fd >= 0)
+ {
+ close (cb->sock_fd);
+ cb->sock_fd = -1;
+ }
sfree(cb->name);
sfree(cb->node);
return (status);
/* Send the message to graphite */
- wg_send_message (buffer, cb);
- if (status != 0)
- {
- /* An error message has already been printed. */
+ status = wg_send_message (buffer, cb);
+ if (status != 0) /* error message has been printed already. */
return (status);
- }
return (0);
} /* int wg_write_messages */