Code

src/plugin.c: Pass a second argument to the `flush' callbacks.
[collectd.git] / src / plugin.c
index bf8fb085685e0e48ba4bf6c570b0b31618e1d60c..629a9f89e69b3e69cc4a6d049dc63fa147c0e515 100644 (file)
@@ -686,7 +686,7 @@ int plugin_flush_one (int timeout, const char *name)
 
 void plugin_flush_all (int timeout)
 {
-       int (*callback) (int);
+       int (*callback) (int timeout, const char *identifier);
        llentry_t *le;
 
        if (list_flush == NULL)
@@ -695,10 +695,10 @@ void plugin_flush_all (int timeout)
        le = llist_head (list_flush);
        while (le != NULL)
        {
-               callback = (int (*) (int)) le->value;
+               callback = (int (*) (int, const char *)) le->value;
                le = le->next;
 
-               (*callback) (timeout);
+               (*callback) (timeout, NULL);
        }
 } /* void plugin_flush_all */
 
@@ -715,12 +715,15 @@ int plugin_flush (const char *plugin, int timeout, const char *identifier)
   {
     if ((plugin != NULL)
        && (strcmp (plugin, le->key) != 0))
+    {
+      le = le->next;
       continue;
+    }
 
     callback = (int (*) (int, const char *)) le->value;
-    le = le->next;
-
     (*callback) (timeout, identifier);
+
+    le = le->next;
   }
   return (0);
 } /* int plugin_flush */