X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Ftarget_set.c;h=8a014c3cd50caa156649f6de3093eda7cd7cac77;hb=8eb9e6285f394569d7fe6ad43a0f4e5f9bca454f;hp=3a4220efe6ed5245d37e0b9f4ab3df30357b9302;hpb=92d840921668dfc6a80684551d916206933b9c70;p=collectd.git diff --git a/src/target_set.c b/src/target_set.c index 3a4220ef..8a014c3c 100644 --- a/src/target_set.c +++ b/src/target_set.c @@ -19,44 +19,6 @@ * Florian Forster **/ -/* - * First tell the compiler to stick to the C99 and POSIX standards as close as - * possible. - */ -#ifndef __STRICT_ANSI__ /* {{{ */ -# define __STRICT_ANSI__ -#endif - -#ifndef _ISOC99_SOURCE -# define _ISOC99_SOURCE -#endif - -#ifdef _POSIX_C_SOURCE -# undef _POSIX_C_SOURCE -#endif -#define _POSIX_C_SOURCE 200112L - -#if 0 -/* Single UNIX needed for strdup. */ -#ifdef _XOPEN_SOURCE -# undef _XOPEN_SOURCE -#endif -#define _XOPEN_SOURCE 500 -#endif - -#ifndef _REENTRANT -# define _REENTRANT -#endif - -#ifndef _THREAD_SAFE -# define _THREAD_SAFE -#endif - -#ifdef _GNU_SOURCE -# undef _GNU_SOURCE -#endif -/* }}} */ - #include "collectd.h" #include "common.h" #include "filter_chain.h" @@ -66,7 +28,7 @@ struct ts_data_s char *host; char *plugin; char *plugin_instance; - char *type; + /* char *type; */ char *type_instance; }; typedef struct ts_data_s ts_data_t; @@ -90,7 +52,7 @@ static char *ts_strdup (const char *orig) /* {{{ */ } /* }}} char *ts_strdup */ static int ts_config_add_string (char **dest, /* {{{ */ - const oconfig_item_t *ci) + const oconfig_item_t *ci, int may_be_empty) { char *temp; @@ -105,6 +67,13 @@ static int ts_config_add_string (char **dest, /* {{{ */ return (-1); } + if ((!may_be_empty) && (ci->values[0].value.string[0] == 0)) + { + ERROR ("Target `set': The `%s' option does not accept empty strings.", + ci->key); + return (-1); + } + temp = ts_strdup (ci->values[0].value.string); if (temp == NULL) { @@ -132,7 +101,7 @@ static int ts_destroy (void **user_data) /* {{{ */ free (data->host); free (data->plugin); free (data->plugin_instance); - free (data->type); + /* free (data->type); */ free (data->type_instance); free (data); @@ -156,7 +125,7 @@ static int ts_create (const oconfig_item_t *ci, void **user_data) /* {{{ */ data->host = NULL; data->plugin = NULL; data->plugin_instance = NULL; - data->type = NULL; + /* data->type = NULL; */ data->type_instance = NULL; status = 0; @@ -166,15 +135,22 @@ static int ts_create (const oconfig_item_t *ci, void **user_data) /* {{{ */ if ((strcasecmp ("Host", child->key) == 0) || (strcasecmp ("Hostname", child->key) == 0)) - status = ts_config_add_string (&data->host, child); + status = ts_config_add_string (&data->host, child, + /* may be empty = */ 0); else if (strcasecmp ("Plugin", child->key) == 0) - status = ts_config_add_string (&data->plugin, child); + status = ts_config_add_string (&data->plugin, child, + /* may be empty = */ 0); else if (strcasecmp ("PluginInstance", child->key) == 0) - status = ts_config_add_string (&data->plugin_instance, child); + status = ts_config_add_string (&data->plugin_instance, child, + /* may be empty = */ 1); +#if 0 else if (strcasecmp ("Type", child->key) == 0) - status = ts_config_add_string (&data->type, child); + status = ts_config_add_string (&data->type, child, + /* may be empty = */ 0); +#endif else if (strcasecmp ("TypeInstance", child->key) == 0) - status = ts_config_add_string (&data->type_instance, child); + status = ts_config_add_string (&data->type_instance, child, + /* may be empty = */ 1); else { ERROR ("Target `set': The `%s' configuration option is not understood " @@ -192,7 +168,7 @@ static int ts_create (const oconfig_item_t *ci, void **user_data) /* {{{ */ if ((data->host == NULL) && (data->plugin == NULL) && (data->plugin_instance == NULL) - && (data->type == NULL) + /* && (data->type == NULL) */ && (data->type_instance == NULL)) { ERROR ("Target `set': You need to set at lease one of `Host', " @@ -214,7 +190,7 @@ static int ts_create (const oconfig_item_t *ci, void **user_data) /* {{{ */ } /* }}} int ts_create */ static int ts_invoke (const data_set_t *ds, value_list_t *vl, /* {{{ */ - notification_meta_t **meta, void **user_data) + notification_meta_t __attribute__((unused)) **meta, void **user_data) { ts_data_t *data; @@ -232,10 +208,10 @@ static int ts_invoke (const data_set_t *ds, value_list_t *vl, /* {{{ */ SET_FIELD (host); SET_FIELD (plugin); SET_FIELD (plugin_instance); - SET_FIELD (type); + /* SET_FIELD (type); */ SET_FIELD (type_instance); - return (0); + return (FC_TARGET_CONTINUE); } /* }}} int ts_invoke */ void module_register (void)