Code

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 b46ba7a25bd2e36f3b3f42419978a18082f88fa0..6745680901491f26aeb987d68605131aad8c3604 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);