Code

* rrd_open: rrd_close does not purge file from cache
[rrdtool-all.git] / program / src / rrd_dump.c
index 3b2a0250642b296d0364c20d3dd59c67638f27fa..eb9b4690e0fbb22f1788b95711695a80a8fa3499 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_READAHEAD);
+    rrd_file = rrd_open(filename, &rrd, RRD_READONLY | RRD_READAHEAD);
     if (rrd_file == NULL) {
         rrd_free(&rrd);
         return (-1);
@@ -176,6 +176,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 +256,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 +423,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);
 }