diff --git a/src/rrd_dump.c b/src/rrd_dump.c
index 552c636c472e799601ac6657321302019605c367..a32f4fb32768dd75c4ef94592b252d5c062dcffb 100644 (file)
--- a/src/rrd_dump.c
+++ b/src/rrd_dump.c
return (-1);
}
- if (opt_daemon == NULL)
- {
- char *temp;
-
- temp = getenv (ENV_RRDCACHED_ADDRESS);
- if (temp != NULL)
- {
- opt_daemon = strdup (temp);
- if (opt_daemon == NULL)
- {
- rrd_set_error("strdup failed.");
- return (-1);
- }
- }
- }
-
- if (opt_daemon != NULL)
- {
- int status;
-
- status = rrdc_connect (opt_daemon);
- if (status != 0)
- {
- rrd_set_error ("rrdc_connect failed with status %i.", status);
- return (-1);
- }
-
- status = rrdc_flush (argv[optind]);
- if (status != 0)
- {
- rrd_set_error ("rrdc_flush (%s) failed with status %i.",
- argv[optind], status);
- return (-1);
- }
-
- rrdc_disconnect ();
- } /* if (opt_daemon) */
+ rc = rrdc_flush_if_daemon(opt_daemon, argv[optind]);
+ if (opt_daemon) free(opt_daemon);
+ if (rc) return (rc);
if ((argc - optind) == 2) {
rc = rrd_dump_opt_r(argv[optind], argv[optind + 1], opt_noheader);