projects
/
collectd.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'collectd-4.5'
[collectd.git]
/
src
/
configfile.c
diff --git
a/src/configfile.c
b/src/configfile.c
index
4a9789a
..
f9ade29
100644
(file)
--- a/
src/configfile.c
+++ b/
src/configfile.c
@@
-30,6
+30,7
@@
#include "configfile.h"
#include "types_list.h"
#include "utils_threshold.h"
#include "configfile.h"
#include "types_list.h"
#include "utils_threshold.h"
+#include "filter_chain.h"
#if HAVE_WORDEXP_H
# include <wordexp.h>
#if HAVE_WORDEXP_H
# include <wordexp.h>
@@
-155,7
+156,8
@@
static int cf_dispatch (const char *type, const char *orig_key,
for (i = 0; i < cf_cb->keys_num; i++)
{
for (i = 0; i < cf_cb->keys_num; i++)
{
- if (strcasecmp (cf_cb->keys[i], key) == 0)
+ if ((cf_cb->keys[i] != NULL)
+ && (strcasecmp (cf_cb->keys[i], key) == 0))
{
ret = (*cf_cb->callback) (key, value);
break;
{
ret = (*cf_cb->callback) (key, value);
break;
@@
-182,8
+184,7
@@
static int dispatch_global_option (const oconfig_item_t *ci)
else if (ci->values[0].type == OCONFIG_TYPE_NUMBER)
{
char tmp[128];
else if (ci->values[0].type == OCONFIG_TYPE_NUMBER)
{
char tmp[128];
- snprintf (tmp, sizeof (tmp), "%lf", ci->values[0].value.number);
- tmp[127] = '\0';
+ ssnprintf (tmp, sizeof (tmp), "%lf", ci->values[0].value.number);
return (global_option_set (ci->key, tmp));
}
else if (ci->values[0].type == OCONFIG_TYPE_BOOLEAN)
return (global_option_set (ci->key, tmp));
}
else if (ci->values[0].type == OCONFIG_TYPE_BOOLEAN)
@@
-258,13
+259,13
@@
static int dispatch_value_plugin (const char *plugin, oconfig_item_t *ci)
int status = -1;
if (ci->values[i].type == OCONFIG_TYPE_STRING)
int status = -1;
if (ci->values[i].type == OCONFIG_TYPE_STRING)
- status = snprintf (buffer_ptr, buffer_free, " %s",
+ status = s
s
nprintf (buffer_ptr, buffer_free, " %s",
ci->values[i].value.string);
else if (ci->values[i].type == OCONFIG_TYPE_NUMBER)
ci->values[i].value.string);
else if (ci->values[i].type == OCONFIG_TYPE_NUMBER)
- status = snprintf (buffer_ptr, buffer_free, " %lf",
+ status = s
s
nprintf (buffer_ptr, buffer_free, " %lf",
ci->values[i].value.number);
else if (ci->values[i].type == OCONFIG_TYPE_BOOLEAN)
ci->values[i].value.number);
else if (ci->values[i].type == OCONFIG_TYPE_BOOLEAN)
- status = snprintf (buffer_ptr, buffer_free, " %s",
+ status = s
s
nprintf (buffer_ptr, buffer_free, " %s",
ci->values[i].value.boolean
? "true" : "false");
ci->values[i].value.boolean
? "true" : "false");
@@
-277,7
+278,7
@@
static int dispatch_value_plugin (const char *plugin, oconfig_item_t *ci)
buffer_ptr = buffer + 1;
return (cf_dispatch (plugin, ci->key, buffer_ptr));
buffer_ptr = buffer + 1;
return (cf_dispatch (plugin, ci->key, buffer_ptr));
-} /* int
plugin_conf_dispatch
*/
+} /* int
dispatch_value_plugin
*/
static int dispatch_value (const oconfig_item_t *ci)
{
static int dispatch_value (const oconfig_item_t *ci)
{
@@
-328,7
+329,7
@@
static int dispatch_block_plugin (oconfig_item_t *ci)
if (ci->children[i].children == NULL)
dispatch_value_plugin (name, ci->children + i);
else
if (ci->children[i].children == NULL)
dispatch_value_plugin (name, ci->children + i);
else
- {DEBUG ("No nested config blocks allow for this plugin.");}
+ {DEBUG ("No nested config blocks allow
ed
for this plugin.");}
}
return (0);
}
return (0);
@@
-341,6
+342,8
@@
static int dispatch_block (oconfig_item_t *ci)
return (dispatch_block_plugin (ci));
else if (strcasecmp (ci->key, "Threshold") == 0)
return (ut_config (ci));
return (dispatch_block_plugin (ci));
else if (strcasecmp (ci->key, "Threshold") == 0)
return (ut_config (ci));
+ else if (strcasecmp (ci->key, "Chain") == 0)
+ return (fc_configure (ci));
return (0);
}
return (0);
}
@@
-548,7
+551,7
@@
static oconfig_item_t *cf_read_dir (const char *dir, int depth)
if ((de->d_name[0] == '.') || (de->d_name[0] == '\0'))
continue;
if ((de->d_name[0] == '.') || (de->d_name[0] == '\0'))
continue;
- status = snprintf (name, sizeof (name), "%s/%s",
+ status = s
s
nprintf (name, sizeof (name), "%s/%s",
dir, de->d_name);
if (status >= sizeof (name))
{
dir, de->d_name);
if (status >= sizeof (name))
{
@@
-888,7
+891,11
@@
int cf_read (char *filename)
dispatch_block (conf->children + i);
}
dispatch_block (conf->children + i);
}
+ oconfig_free (conf);
+
+ /* Read the default types.db if no `TypesDB' option was given. */
if (cf_default_typesdb)
if (cf_default_typesdb)
- read_types_list (PLUGINDIR"/types.db"); /* FIXME: Configure path */
+ read_types_list (PKGDATADIR"/types.db");
+
return (0);
} /* int cf_read */
return (0);
} /* int cf_read */