Code

rrd_flush.c: Provide a more useful error message.
authoroetiker <oetiker@a5681a0c-68f1-0310-ab6d-d61299d08faa>
Sun, 8 Mar 2009 11:12:41 +0000 (11:12 +0000)
committeroetiker <oetiker@a5681a0c-68f1-0310-ab6d-d61299d08faa>
Sun, 8 Mar 2009 11:12:41 +0000 (11:12 +0000)
by Sebastian Harl

git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1758 a5681a0c-68f1-0310-ab6d-d61299d08faa

program/src/rrd_flush.c

index 2d8df3aeed16585305832ce75db0e65ca15735ff..1f72e80067ee050f6534ffffe80fb2502a81efbe 100644 (file)
@@ -90,7 +90,21 @@ int rrd_cmd_flush (int argc, char **argv)
     for (int i = optind; i < argc; i++)
     {
         status = rrdc_flush(argv[i]);
-        if (status) break;
+        if (status)
+        {
+            char *error;
+            int   remaining;
+
+            error     = strdup(rrd_get_error());
+            remaining = argc - optind - 1;
+
+            rrd_set_error("Flushing of file \"%s\" failed: %s. Skipping "
+                    "remaining %i file%s.", argv[i],
+                    ((! error) || (*error == '\0')) ? "unknown error" : error,
+                    remaining, (remaining == 1) ? "" : "s");
+            free(error);
+            break;
+        }
     }
 
     return ((status == 0) ? 0 : -1);