[packages] collectd: lazily evaluate CONFIGURE_PLUGIN (thanks nbd) (#6447), update...
[openwrt/svn-archive/archive.git] / utils / collectd / patches / 100-rrdtool-add-rrasingle-option.patch
index dd0bb42..611a729 100644 (file)
@@ -1,25 +1,57 @@
 --- a/src/rrdtool.c
 +++ b/src/rrdtool.c
-@@ -87,6 +87,7 @@ static const char *config_keys[] =
+@@ -80,6 +80,7 @@ static const char *config_keys[] =
        "HeartBeat",
        "RRARows",
        "RRATimespan",
 +      "RRASingle",
-       "XFF"
+       "XFF",
+       "WritesPerSecond",
+       "RandomTimeout"
+@@ -101,6 +102,8 @@ static rrdcreate_config_t rrdcreate_conf
+       /* timespans = */ NULL,
+       /* timespans_num = */ 0,
++      /* rrasingle = */ 0,
++
+       /* consolidation_functions = */ NULL,
+       /* consolidation_functions_num = */ 0
  };
- static int config_keys_num = STATIC_ARRAY_SIZE (config_keys);
-@@ -1077,6 +1078,14 @@ static int rrd_config (const char *key, 
-               }
-               xff = tmp;
+@@ -976,6 +979,14 @@ static int rrd_config (const char *key, 
+               free (value_copy);
        }
 +      else if (strcasecmp ("RRASingle", key) == 0)
 +      {
-+              if (strcasecmp("true", value) == 0)
++              if (IS_TRUE (value))
 +              {
-+                      rra_types_num = 1;
++                      rrdcreate_config.rrasingle = 1;
 +                      NOTICE ("rrdtool plugin: RRASingle = true: creating only AVERAGE RRAs");
 +              }
 +      }
-       else
+       else if (strcasecmp ("XFF", key) == 0)
        {
-               return (-1);
+               double tmp = atof (value);
+--- a/src/utils_rrdcreate.c
++++ b/src/utils_rrdcreate.c
+@@ -122,6 +122,9 @@ static int rra_get (char ***ret, const v
+     rts_num = rra_timespans_num;
+   }
++  if (cfg->rrasingle)
++    rra_types_num = 1;
++
+   rra_max = rts_num * rra_types_num;
+   if ((rra_def = (char **) malloc ((rra_max + 1) * sizeof (char *))) == NULL)
+--- a/src/utils_rrdcreate.h
++++ b/src/utils_rrdcreate.h
+@@ -36,6 +36,8 @@ struct rrdcreate_config_s
+   int *timespans;
+   size_t timespans_num;
++  int rrasingle;
++
+   char **consolidation_functions;
+   size_t consolidation_functions_num;
+ };