X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fconfigfile.c;h=d401a2e1e0e2998a1a965fa9b31acb2532106682;hb=b8f83ce0a28e0d8033c0f3bdc95aeb44a2d17381;hp=0e28e92f9ed0d2e526d768e87f539794b3b5aa5a;hpb=0ebe3efc7b797546bcae87a946cff1c4cf472919;p=collectd.git diff --git a/src/configfile.c b/src/configfile.c index 0e28e92f..d401a2e1 100644 --- a/src/configfile.c +++ b/src/configfile.c @@ -336,7 +336,15 @@ static int dispatch_block_plugin (oconfig_item_t *ci) if (ci->children[i].children == NULL) dispatch_value_plugin (name, ci->children + i); else - {DEBUG ("No nested config blocks allowed for this plugin.");} + { + WARNING ("There is a `%s' block within the " + "configuration for the %s plugin. " + "The plugin either only expects " + "\"simple\" configuration statements " + "or wasn't loaded using `LoadPlugin'." + " Please check your configuration.", + ci->children[i].key, name); + } } return (0); @@ -378,12 +386,12 @@ static int cf_ci_replace_child (oconfig_item_t *dst, oconfig_item_t *src, temp = NULL; /* If (src->children_num == 0) the array size is decreased. If offset - * is _not_ the last element, (offset < (src->children_num - 1)), then + * is _not_ the last element, (offset < (dst->children_num - 1)), then * we need to move the trailing elements before resizing the array. */ - if ((src->children_num == 0) && (offset < (src->children_num - 1))) + if ((src->children_num == 0) && (offset < (dst->children_num - 1))) { - int nmemb = src->children_num - (offset + 1); - memmove (src->children + offset, src->children + offset + 1, + int nmemb = dst->children_num - (offset + 1); + memmove (dst->children + offset, dst->children + offset + 1, sizeof (oconfig_item_t) * nmemb); } @@ -415,7 +423,7 @@ static int cf_ci_replace_child (oconfig_item_t *dst, oconfig_item_t *src, sizeof (oconfig_item_t) * nmemb); } - /* Last but not least: If there are new childrem, copy them to the + /* Last but not least: If there are new children, copy them to the * memory reserved for them. */ if (src->children_num > 0) { @@ -491,6 +499,9 @@ static int cf_include_all (oconfig_item_t *root, int depth) /* Now replace the i'th child in `root' with `new'. */ cf_ci_replace_child (root, new, i); + /* ... and go back to the new i'th child. */ + --i; + sfree (new->values); sfree (new); } /* for (i = 0; i < root->children_num; i++) */