projects
/
rrdtool.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
prepare for the release of rrdtool-1.3.0
[rrdtool.git]
/
src
/
rrd_tune.c
diff --git
a/src/rrd_tune.c
b/src/rrd_tune.c
index
f5bea46
..
3fa33d9
100644
(file)
--- a/
src/rrd_tune.c
+++ b/
src/rrd_tune.c
@@
-1,5
+1,5
@@
/*****************************************************************************
/*****************************************************************************
- * RRDtool 1.
2.23 Copyright by Tobi Oetiker, 1997-2007
+ * RRDtool 1.
3.0 Copyright by Tobi Oetiker, 1997-2008
*****************************************************************************
* change header parameters of an rrd
*****************************************************************************
*****************************************************************************
* change header parameters of an rrd
*****************************************************************************
@@
-88,6
+88,8
@@
int rrd_tune(
{"beta", required_argument, 0, 'y'},
{"gamma", required_argument, 0, 'z'},
{"gamma-deviation", required_argument, 0, 'v'},
{"beta", required_argument, 0, 'y'},
{"gamma", required_argument, 0, 'z'},
{"gamma-deviation", required_argument, 0, 'v'},
+ {"smoothing-window", required_argument, 0, 's'},
+ {"smoothing-window-deviation", required_argument, 0, 'S'},
{"aberrant-reset", required_argument, 0, 'b'},
{0, 0, 0, 0}
};
{"aberrant-reset", required_argument, 0, 'b'},
{0, 0, 0, 0}
};
@@
-105,7
+107,8
@@
int rrd_tune(
while (1) {
int option_index = 0;
int opt;
while (1) {
int option_index = 0;
int opt;
- char *old_locale = "";
+ char *old_locale = "";
+
opt = getopt_long(argc, argv, "h:i:a:d:r:p:n:w:f:x:y:z:v:b:",
long_options, &option_index);
if (opt == EOF)
opt = getopt_long(argc, argv, "h:i:a:d:r:p:n:w:f:x:y:z:v:b:",
long_options, &option_index);
if (opt == EOF)
@@
-114,17
+117,17
@@
int rrd_tune(
optcnt++;
switch (opt) {
case 'h':
optcnt++;
switch (opt) {
case 'h':
- old_locale = setlocale(LC_NUMERIC,"C");
+ old_locale = setlocale(LC_NUMERIC,
"C");
if ((matches =
sscanf(optarg, DS_NAM_FMT ":%ld", ds_nam,
&heartbeat)) != 2) {
rrd_set_error("invalid arguments for heartbeat");
rrd_free(&rrd);
rrd_close(rrd_file);
if ((matches =
sscanf(optarg, DS_NAM_FMT ":%ld", ds_nam,
&heartbeat)) != 2) {
rrd_set_error("invalid arguments for heartbeat");
rrd_free(&rrd);
rrd_close(rrd_file);
- setlocale(LC_NUMERIC,old_locale);
+ setlocale(LC_NUMERIC,
old_locale);
return -1;
}
return -1;
}
- setlocale(LC_NUMERIC,old_locale);
+ setlocale(LC_NUMERIC,
old_locale);
if ((ds = ds_match(&rrd, ds_nam)) == -1) {
rrd_free(&rrd);
rrd_close(rrd_file);
if ((ds = ds_match(&rrd, ds_nam)) == -1) {
rrd_free(&rrd);
rrd_close(rrd_file);
@@
-134,16
+137,16
@@
int rrd_tune(
break;
case 'i':
break;
case 'i':
- old_locale = setlocale(LC_NUMERIC,"C");
+ old_locale = setlocale(LC_NUMERIC,
"C");
if ((matches =
sscanf(optarg, DS_NAM_FMT ":%lf", ds_nam, &min)) < 1) {
rrd_set_error("invalid arguments for minimum ds value");
rrd_free(&rrd);
rrd_close(rrd_file);
if ((matches =
sscanf(optarg, DS_NAM_FMT ":%lf", ds_nam, &min)) < 1) {
rrd_set_error("invalid arguments for minimum ds value");
rrd_free(&rrd);
rrd_close(rrd_file);
- setlocale(LC_NUMERIC,old_locale);
+ setlocale(LC_NUMERIC,
old_locale);
return -1;
}
return -1;
}
- setlocale(LC_NUMERIC,old_locale);
+ setlocale(LC_NUMERIC,
old_locale);
if ((ds = ds_match(&rrd, ds_nam)) == -1) {
rrd_free(&rrd);
rrd_close(rrd_file);
if ((ds = ds_match(&rrd, ds_nam)) == -1) {
rrd_free(&rrd);
rrd_close(rrd_file);
@@
-156,16
+159,16
@@
int rrd_tune(
break;
case 'a':
break;
case 'a':
- old_locale = setlocale(LC_NUMERIC,"C");
+ old_locale = setlocale(LC_NUMERIC,
"C");
if ((matches =
sscanf(optarg, DS_NAM_FMT ":%lf", ds_nam, &max)) < 1) {
rrd_set_error("invalid arguments for maximum ds value");
rrd_free(&rrd);
rrd_close(rrd_file);
if ((matches =
sscanf(optarg, DS_NAM_FMT ":%lf", ds_nam, &max)) < 1) {
rrd_set_error("invalid arguments for maximum ds value");
rrd_free(&rrd);
rrd_close(rrd_file);
- setlocale(LC_NUMERIC,old_locale);
+ setlocale(LC_NUMERIC,
old_locale);
return -1;
}
return -1;
}
- setlocale(LC_NUMERIC,old_locale);
+ setlocale(LC_NUMERIC,
old_locale);
if ((ds = ds_match(&rrd, ds_nam)) == -1) {
rrd_free(&rrd);
rrd_close(rrd_file);
if ((ds = ds_match(&rrd, ds_nam)) == -1) {
rrd_free(&rrd);
rrd_close(rrd_file);
@@
-194,15
+197,17
@@
int rrd_tune(
rrd_close(rrd_file);
return -1;
}
rrd_close(rrd_file);
return -1;
}
- strncpy(rrd.ds_def[ds].dst, dst, DST_SIZE - 1);
- rrd.ds_def[ds].dst[DST_SIZE - 1] = '\0';
-
- rrd.pdp_prep[ds].last_ds[0] = 'U';
- rrd.pdp_prep[ds].last_ds[1] = 'N';
- rrd.pdp_prep[ds].last_ds[2] = 'K';
- rrd.pdp_prep[ds].last_ds[3] = 'N';
- rrd.pdp_prep[ds].last_ds[4] = '\0';
+ /* only reset when something is changed */
+ if (strncmp(rrd.ds_def[ds].dst, dst, DST_SIZE - 1) != 0) {
+ strncpy(rrd.ds_def[ds].dst, dst, DST_SIZE - 1);
+ rrd.ds_def[ds].dst[DST_SIZE - 1] = '\0';
+ rrd.pdp_prep[ds].last_ds[0] = 'U';
+ rrd.pdp_prep[ds].last_ds[1] = 'N';
+ rrd.pdp_prep[ds].last_ds[2] = 'K';
+ rrd.pdp_prep[ds].last_ds[3] = 'N';
+ rrd.pdp_prep[ds].last_ds[4] = '\0';
+ }
break;
case 'r':
if ((matches =
break;
case 'r':
if ((matches =
@@
-295,6
+300,23
@@
int rrd_tune(
return -1;
}
break;
return -1;
}
break;
+ case 's':
+ strcpy(rrd.stat_head->version, RRD_VERSION); /* smoothing_window causes Version 4 */
+ if (set_hwarg
+ (&rrd, CF_SEASONAL, RRA_seasonal_smoothing_window, optarg)) {
+ rrd_free(&rrd);
+ return -1;
+ }
+ break;
+ case 'S':
+ strcpy(rrd.stat_head->version, RRD_VERSION); /* smoothing_window causes Version 4 */
+ if (set_hwarg
+ (&rrd, CF_DEVSEASONAL, RRA_seasonal_smoothing_window,
+ optarg)) {
+ rrd_free(&rrd);
+ return -1;
+ }
+ break;
case '?':
if (optopt != 0)
rrd_set_error("unknown option '%c'", optopt);
case '?':
if (optopt != 0)
rrd_set_error("unknown option '%c'", optopt);