Handle failure of simple config callbacks
authorRuben Kerkhof <ruben@rubenkerkhof.com>
Mon, 18 Feb 2019 13:46:55 +0000 (14:46 +0100)
committerRuben Kerkhof <ruben@rubenkerkhof.com>
Mon, 18 Feb 2019 13:46:55 +0000 (14:46 +0100)
When they return an error, collectd should not ignore this.
Fixes #3076

src/daemon/configfile.c

index 8bf6b8d..735be83 100644 (file)
@@ -411,10 +411,12 @@ static int dispatch_block_plugin(oconfig_item_t *ci) {
   }
 
   /* Hm, no complex plugin found. Dispatch the values one by one */
-  for (int i = 0; i < ci->children_num; i++) {
-    if (ci->children[i].children == NULL)
-      dispatch_value_plugin(name, ci->children + i);
-    else {
+  for (int i = 0, ret = 0; i < ci->children_num; i++) {
+    if (ci->children[i].children == NULL) {
+      ret = dispatch_value_plugin(name, ci->children + i);
+      if (ret != 0)
+        return ret;
+    } else {
       WARNING("There is a `%s' block within the "
               "configuration for the %s plugin. "
               "The plugin either only expects "