src/rrd_fetch.c: Use "rrdc_fetch" if daemon is available.
authoroetiker <oetiker@a5681a0c-68f1-0310-ab6d-d61299d08faa>
Mon, 29 Mar 2010 17:05:33 +0000 (17:05 +0000)
committeroetiker <oetiker@a5681a0c-68f1-0310-ab6d-d61299d08faa>
Mon, 29 Mar 2010 17:05:33 +0000 (17:05 +0000)
Instead of flushing the file via the connection to the daemon and then
accessing it directly, use the "FETCH" command to access the file via
the RRDCacheD. This removes ambiguities with absolute and relative paths
and makes it possible to read data from files that are not available
locally. -- Florian

git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk/program@2060 a5681a0c-68f1-0310-ab6d-d61299d08faa

src/rrd_fetch.c

index b46ba7a..6745680 100644 (file)
@@ -167,14 +167,17 @@ int rrd_fetch(
         return -1;
     }
 
-    status = rrdc_flush_if_daemon(opt_daemon, argv[optind]);
-    if (opt_daemon) free (opt_daemon);
-    if (status) return (-1);
-
     cf = argv[optind + 1];
 
-    status = rrd_fetch_r(argv[optind], cf, start, end, step,
-            ds_cnt, ds_namv, data);
+    rrdc_connect (opt_daemon);
+    if (rrdc_is_connected (opt_daemon))
+           status = rrdc_fetch (argv[optind], cf, start, end, step,
+                           ds_cnt, ds_namv, data);
+
+    else
+           status = rrd_fetch_r(argv[optind], cf, start, end, step,
+                           ds_cnt, ds_namv, data);
+
     if (status != 0)
         return (-1);
     return (0);