Only create version 4 rrd files if the new holtwinters MHW.. CF is used.
[rrdtool.git] / src / rrd_dump.c
index 56ebda7..be000f9 100644 (file)
@@ -83,7 +83,7 @@ int rrd_dump_r(
     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);
@@ -100,7 +100,11 @@ int rrd_dump_r(
 
     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
@@ -176,6 +180,7 @@ int rrd_dump_r(
         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",
@@ -255,6 +260,7 @@ int rrd_dump_r(
             }
             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;
@@ -421,9 +427,8 @@ int rrd_dump_r(
     }
     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);
 }