/*****************************************************************************
- * RRDtool 1.3rc4 Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.3.2 Copyright by Tobi Oetiker, 1997-2008
*****************************************************************************
* rrd_dump Display a RRD
*****************************************************************************
*****************************************************************************/
#include "rrd_tool.h"
#include "rrd_rpncalc.h"
+#include "rrd_client.h"
#if !(defined(NETWARE) || defined(WIN32))
extern char *tzname[2];
#endif
-
-int rrd_dump_opt_r(
+static int rrd_dump_opt_r(
const char *filename,
char *outname,
- int opt_noheader
-)
+ int opt_noheader)
{
unsigned int i, ii, ix, iii = 0;
time_t now;
out_file = stdout;
}
- if (!opt_noheader){
- fputs("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n", out_file);
- fputs
- ("<!DOCTYPE rrd SYSTEM \"http://oss.oetiker.ch/rrdtool/rrdtool.dtd\">\n",
- out_file);
+ if (!opt_noheader) {
+ fputs("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n", out_file);
+ fputs
+ ("<!DOCTYPE rrd SYSTEM \"http://oss.oetiker.ch/rrdtool/rrdtool.dtd\">\n",
+ out_file);
}
fputs("<!-- Round Robin Database Dump -->", out_file);
fputs("<rrd>", out_file);
const char *filename,
char *outname)
{
- return rrd_dump_opt_r(filename,outname,0);
+ return rrd_dump_opt_r(filename, outname, 0);
}
int rrd_dump(
{
int rc;
int opt_noheader = 0;
+ char *opt_daemon = NULL;
+
/* init rrd clean */
optind = 0;
opterr = 0; /* initialize getopt */
-
+
while (42) {
- int opt;
+ int opt;
int option_index = 0;
static struct option long_options[] = {
+ {"daemon", required_argument, 0, 'd'},
{"no-header", no_argument, 0, 'n'},
{0, 0, 0, 0}
};
- opt = getopt_long(argc, argv, "n", long_options, &option_index);
+ opt = getopt_long(argc, argv, "d:n", long_options, &option_index);
if (opt == EOF)
break;
switch (opt) {
+ case 'd':
+ if (opt_daemon != NULL)
+ free (opt_daemon);
+ opt_daemon = strdup (optarg);
+ if (opt_daemon == NULL)
+ {
+ rrd_set_error ("strdup failed.");
+ return (-1);
+ }
+ break;
+
case 'n':
opt_noheader = 1;
break;
- default:
+ default:
rrd_set_error("usage rrdtool %s [--no-header|-n] "
- "file.rrd [file.xml]", argv[0]);
+ "file.rrd [file.xml]", argv[0]);
return (-1);
break;
}
return (-1);
}
+ 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);
+ rc = rrd_dump_opt_r(argv[optind], argv[optind + 1], opt_noheader);
} else {
- rc = rrd_dump_opt_r(argv[optind], NULL,opt_noheader);
+ rc = rrd_dump_opt_r(argv[optind], NULL, opt_noheader);
}
return rc;
}
-