/*****************************************************************************
- * RRDtool 1.2.23 Copyright by Tobi Oetiker, 1997-2007
+ * RRDtool 1.2.99907080300 Copyright by Tobi Oetiker, 1997-2007
*****************************************************************************
* rrd_dump Display a RRD
*****************************************************************************
rrd_value_t value;
struct tm tm;
- rrd_file = rrd_open(filename, &rrd, RRD_READONLY);
+ rrd_file = rrd_open(filename, &rrd, RRD_READONLY | RRD_READAHEAD);
if (rrd_file == NULL) {
rrd_free(&rrd);
return (-1);
out_file = stdout;
}
+ fputs("<?xml version=\"1.0\" encoding=\"utf-8\"?>", out_file);
+ fputs
+ ("<!DOCTYPE rrd SYSTEM \"http://oss.oetiker.ch/rrdtool/rrdtool.dtd\">",
+ out_file);
fputs("<!-- Round Robin Database Dump -->", out_file);
fputs("<rrd>", out_file);
- fprintf(out_file, "\t<version> %s </version>\n", RRD_VERSION);
+ if (atoi(rrd.stat_head->version) <= 3) {
+ fprintf(out_file, "\t<version> %s </version>\n", RRD_VERSION3);
+ } else {
+ fprintf(out_file, "\t<version> %s </version>\n", RRD_VERSION);
+ }
fprintf(out_file, "\t<step> %lu </step> <!-- Seconds -->\n",
rrd.stat_head->pdp_step);
#if HAVE_STRFTIME
#else
# error "Need strftime"
#endif
- fprintf(out_file, "\t<lastupdate> %ld </lastupdate> <!-- %s -->\n\n",
- rrd.live_head->last_up, somestring);
+ fprintf(out_file, "\t<lastupdate> %lu </lastupdate> <!-- %s -->\n\n",
+ (unsigned long) rrd.live_head->last_up, somestring);
for (i = 0; i < rrd.stat_head->ds_cnt; i++) {
fprintf(out_file, "\t<ds>\n");
fprintf(out_file, "\t\t<name> %s </name>\n", rrd.ds_def[i].ds_nam);
} else { /* DST_CDEF */
char *str = NULL;
- rpn_compact2str((rpn_cdefds_t *) & (rrd.ds_def[i].par[DS_cdef]),
+ rpn_compact2str((rpn_cdefds_t *) &(rrd.ds_def[i].par[DS_cdef]),
rrd.ds_def, &str);
fprintf(out_file, "\t\t<cdef> %s </cdef>\n", str);
free(str);
fprintf(out_file, "\t\t<params>\n");
switch (cf_conv(rrd.rra_def[i].cf_nam)) {
case CF_HWPREDICT:
+ case CF_MHWPREDICT:
fprintf(out_file, "\t\t<hw_alpha> %0.10e </hw_alpha>\n",
rrd.rra_def[i].par[RRA_hw_alpha].u_val);
fprintf(out_file, "\t\t<hw_beta> %0.10e </hw_beta>\n",
fprintf(out_file,
"\t\t<seasonal_smooth_idx> %lu </seasonal_smooth_idx>\n",
rrd.rra_def[i].par[RRA_seasonal_smooth_idx].u_cnt);
+ if (atoi(rrd.stat_head->version) >= 4) {
+ fprintf(out_file,
+ "\t\t<smoothing_window> %0.10e </smoothing_window>\n",
+ rrd.rra_def[i].par[RRA_seasonal_smoothing_window].
+ u_val);
+ }
fprintf(out_file,
"\t\t<dependent_rra_idx> %lu </dependent_rra_idx>\n",
rrd.rra_def[i].par[RRA_dependent_rra_idx].u_cnt);
}
switch (cf_conv(rrd.rra_def[i].cf_nam)) {
case CF_HWPREDICT:
+ case CF_MHWPREDICT:
value =
rrd.cdp_prep[i * rrd.stat_head->ds_cnt +
ii].scratch[CDP_hw_intercept].u_val;
}
fprintf(out_file, "</rrd>\n");
rrd_free(&rrd);
- close(rrd_file->fd);
if (out_file != stdout) {
fclose(out_file);
}
- return (0);
+ return rrd_close(rrd_file);
}