X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fwrite_graphite.c;h=25c7a637759daa0a78ec66f5f080ffd99ef22893;hb=3fae5596643f1e361eb18c3d65448f8bc02fdd80;hp=6baace14410e48f72761d21d6d2db1c9fdb854ad;hpb=029e88709f60d90fede55ed31f775602c1487d24;p=collectd.git diff --git a/src/write_graphite.c b/src/write_graphite.c index 6baace14..25c7a637 100644 --- a/src/write_graphite.c +++ b/src/write_graphite.c @@ -47,13 +47,9 @@ #include "plugin.h" #include "configfile.h" -#include "utils_cache.h" #include "utils_complain.h" #include "utils_format_graphite.h" -/* Folks without pthread will need to disable this plugin. */ -#include - #include #define WG_DEFAULT_NODE "localhost" @@ -138,7 +134,10 @@ static void wg_reset_buffer (struct wg_callback *cb) static int wg_send_buffer (struct wg_callback *cb) { - ssize_t status = 0; + ssize_t status; + + if (cb->sock_fd < 0) + return (-1); status = swrite (cb->sock_fd, cb->send_buf, strlen (cb->send_buf)); if (status != 0) @@ -180,7 +179,7 @@ static int wg_flush_nolock (cdtime_t timeout, struct wg_callback *cb) return (0); } - if (cb->send_buf_fill <= 0) + if (cb->send_buf_fill == 0) { cb->send_buf_init_time = cdtime (); return (0); @@ -194,7 +193,7 @@ static int wg_flush_nolock (cdtime_t timeout, struct wg_callback *cb) static int wg_callback_init (struct wg_callback *cb) { - struct addrinfo ai_hints; + struct addrinfo ai_hints = { 0 }; struct addrinfo *ai_list; struct addrinfo *ai_ptr; cdtime_t now; @@ -212,7 +211,6 @@ static int wg_callback_init (struct wg_callback *cb) return (EAGAIN); cb->last_connect_time = now; - memset (&ai_hints, 0, sizeof (ai_hints)); #ifdef AI_ADDRCONFIG ai_hints.ai_flags |= AI_ADDRCONFIG; #endif @@ -407,7 +405,7 @@ static int wg_send_message (char const *message, struct wg_callback *cb) static int wg_write_messages (const data_set_t *ds, const value_list_t *vl, struct wg_callback *cb) { - char buffer[WG_SEND_BUF_SIZE]; + char buffer[WG_SEND_BUF_SIZE] = { 0 }; int status; if (0 != strcmp (ds->type, vl->type)) @@ -417,7 +415,6 @@ static int wg_write_messages (const data_set_t *ds, const value_list_t *vl, return -1; } - memset (buffer, 0, sizeof (buffer)); status = format_graphite (buffer, sizeof (buffer), ds, vl, cb->prefix, cb->postfix, cb->escape_char, cb->format_flags); if (status != 0) /* error message has been printed already. */ @@ -450,11 +447,9 @@ static int wg_write (const data_set_t *ds, const value_list_t *vl, static int config_set_char (char *dest, oconfig_item_t *ci) { - char buffer[4]; + char buffer[4] = { 0 }; int status; - memset (buffer, 0, sizeof (buffer)); - status = cf_util_get_string_buffer (ci, buffer, sizeof (buffer)); if (status != 0) return (status); @@ -481,18 +476,17 @@ static int config_set_char (char *dest, static int wg_config_node (oconfig_item_t *ci) { struct wg_callback *cb; - user_data_t user_data; + user_data_t user_data = { 0 }; char callback_name[DATA_MAX_NAME_LEN]; int i; int status = 0; - cb = malloc (sizeof (*cb)); + cb = calloc (1, sizeof (*cb)); if (cb == NULL) { - ERROR ("write_graphite plugin: malloc failed."); + ERROR ("write_graphite plugin: calloc failed."); return (-1); } - memset (cb, 0, sizeof (*cb)); cb->sock_fd = -1; cb->name = NULL; cb->node = strdup (WG_DEFAULT_NODE); @@ -585,7 +579,6 @@ static int wg_config_node (oconfig_item_t *ci) ssnprintf (callback_name, sizeof (callback_name), "write_graphite/%s", cb->name); - memset (&user_data, 0, sizeof (user_data)); user_data.data = cb; user_data.free_func = wg_callback_free; plugin_register_write (callback_name, wg_write, &user_data);