X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fwrite_graphite.c;h=dd7f966c6b0d5c08a40efb4cc2081781f487dc42;hb=836598b100f9acec988fcfe9a14e349e4186783b;hp=efdd4d8a23206c6ab3ddae927f6d22422607e09b;hpb=aa3811995bfae69f0d1a0f897acfa4a9a4c0138a;p=collectd.git diff --git a/src/write_graphite.c b/src/write_graphite.c index efdd4d8a..dd7f966c 100644 --- a/src/write_graphite.c +++ b/src/write_graphite.c @@ -43,9 +43,9 @@ */ #include "collectd.h" + #include "common.h" #include "plugin.h" -#include "configfile.h" #include "utils_complain.h" #include "utils_format_graphite.h" @@ -194,7 +194,6 @@ static int wg_flush_nolock (cdtime_t timeout, struct wg_callback *cb) static int wg_callback_init (struct wg_callback *cb) { struct addrinfo *ai_list; - struct addrinfo *ai_ptr; cdtime_t now; int status; @@ -220,8 +219,6 @@ static int wg_callback_init (struct wg_callback *cb) else ai_hints.ai_socktype = SOCK_DGRAM; - ai_list = NULL; - status = getaddrinfo (cb->node, cb->service, &ai_hints, &ai_list); if (status != 0) { @@ -231,7 +228,7 @@ static int wg_callback_init (struct wg_callback *cb) } assert (ai_list != NULL); - for (ai_ptr = ai_list; ai_ptr != NULL; ai_ptr = ai_ptr->ai_next) + for (struct addrinfo *ai_ptr = ai_list; ai_ptr != NULL; ai_ptr = ai_ptr->ai_next) { cb->sock_fd = socket (ai_ptr->ai_family, ai_ptr->ai_socktype, ai_ptr->ai_protocol); @@ -242,6 +239,8 @@ static int wg_callback_init (struct wg_callback *cb) continue; } + set_sock_opts (cb->sock_fd); + status = connect (cb->sock_fd, ai_ptr->ai_addr, ai_ptr->ai_addrlen); if (status != 0) { @@ -475,9 +474,7 @@ 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 = { 0 }; char callback_name[DATA_MAX_NAME_LEN]; - int i; int status = 0; cb = calloc (1, sizeof (*cb)); @@ -514,7 +511,7 @@ static int wg_config_node (oconfig_item_t *ci) pthread_mutex_init (&cb->send_lock, /* attr = */ NULL); C_COMPLAIN_INIT (&cb->init_complaint); - for (i = 0; i < ci->children_num; i++) + for (int i = 0; i < ci->children_num; i++) { oconfig_item_t *child = ci->children + i; @@ -551,6 +548,9 @@ static int wg_config_node (oconfig_item_t *ci) else if (strcasecmp ("AlwaysAppendDS", child->key) == 0) cf_util_get_flag (child, &cb->format_flags, GRAPHITE_ALWAYS_APPEND_DS); + else if (strcasecmp ("DropDuplicateFields", child->key) == 0) + cf_util_get_flag (child, &cb->format_flags, + GRAPHITE_DROP_DUPE_FIELDS); else if (strcasecmp ("EscapeCharacter", child->key) == 0) config_set_char (&cb->escape_char, child); else @@ -578,21 +578,22 @@ static int wg_config_node (oconfig_item_t *ci) ssnprintf (callback_name, sizeof (callback_name), "write_graphite/%s", cb->name); - user_data.data = cb; - user_data.free_func = wg_callback_free; - plugin_register_write (callback_name, wg_write, &user_data); + user_data_t ud = { + .data = cb, + .free_func = wg_callback_free + }; + + plugin_register_write (callback_name, wg_write, &ud); - user_data.free_func = NULL; - plugin_register_flush (callback_name, wg_flush, &user_data); + ud.free_func = NULL; + plugin_register_flush (callback_name, wg_flush, &ud); return (0); } static int wg_config (oconfig_item_t *ci) { - int i; - - for (i = 0; i < ci->children_num; i++) + for (int i = 0; i < ci->children_num; i++) { oconfig_item_t *child = ci->children + i;