[PATCH 6 of 7] * URL support for rrd_fetch

Peter Stamfest <[email protected]>
Newsgroups gmane.comp.db.rrdtool.devel
Message-ID <[email protected]>
# HG changeset patch
# User Peter Stamfest <[email protected]>
# Date 1299524684 -3600
# Node ID ca194c6734f0c3251b389c4603919f9687588691
# Parent  66ab2898ff2c8fdcdb03f1da63514ac55e616496
* URL support for rrd_fetch

diff --git a/src/rrd_fetch.c b/src/rrd_fetch.c
--- a/src/rrd_fetch.c
+++ b/src/rrd_fetch.c
@@ -54,6 +54,7 @@
 
 #include "rrd_tool.h"
 #include "rrd_client.h"
+#include "rrd_source.h"
 
 #include "rrd_is_thread_safe.h"
 /* #define DEBUG */
@@ -75,6 +76,7 @@
     const char *cf;
     char *opt_daemon = NULL;
     int status = -1;
+    rrd_base_source_t *source = NULL;
 
     rrd_time_value_t start_tv, end_tv;
     char     *parsetime_error = NULL;
@@ -169,20 +171,28 @@
 
     cf = argv[optind + 1];
 
-    const char *addr = want_rrdc_connection(opt_daemon);
-    if (addr != NULL) {
-        rrdc_connection_t *conn = new_rrdc_connection(addr);
-        if (conn != NULL) {
-            status = rrdc_fetch (conn, argv[optind], cf, start, end, step,
+    source = parse_source_string(argv[optind]);
+    if (source) {
+        status = source->vtab->fetch_m(source, cf, start, end, step,
+                                       ds_cnt, ds_namv, data);
+
+        delete_source_obj(source);
+    } else {
+        const char *addr = want_rrdc_connection(opt_daemon);
+        if (addr != NULL) {
+            rrdc_connection_t *conn = new_rrdc_connection(addr);
+            if (conn != NULL) {
+                status = rrdc_fetch (conn, argv[optind], cf, start, end, step,
+                                     ds_cnt, ds_namv, data);
+                delete_rrdc_connection(conn);
+            }
+        }
+        else
+        {
+            status = rrd_fetch_r(argv[optind], cf, start, end, step,
                                  ds_cnt, ds_namv, data);
-            delete_rrdc_connection(conn);
         }
     }
-    else
-    {
-      status = rrd_fetch_r(argv[optind], cf, start, end, step,
-                           ds_cnt, ds_namv, data);
-    }
 
     if (opt_daemon != NULL) free(opt_daemon);
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.