int argc,
char **argv)
{
+ struct option long_options[] = {
+ {"start", required_argument, 0, 'b'},
+ {"step", required_argument, 0, 's'},
+ {0, 0, 0, 0}
+ };
+ int option_index = 0;
+ int opt;
time_t last_up = time(NULL) - 10;
unsigned long pdp_step = 300;
struct rrd_time_value last_up_tv;
opterr = 0; /* initialize getopt */
while (1) {
- static struct option long_options[] = {
- {"start", required_argument, 0, 'b'},
- {"step", required_argument, 0, 's'},
- {0, 0, 0, 0}
- };
- int option_index = 0;
- int opt;
-
opt = getopt_long(argc, argv, "b:s:", long_options, &option_index);
if (opt == EOF)
return (-1);
}
- last_up = mktime(&last_up_tv.tm) + last_up_tv.offset;
+ last_up = mktime(&last_up_tv.tm) +last_up_tv.offset;
if (last_up < 3600 * 24 * 365 * 10) {
rrd_set_error
}
}
if (optind == argc) {
- rrd_set_error("what is the name of the rrd file you want to create?");
+ rrd_set_error("need name of an rrd file to create");
return -1;
}
rc = rrd_create_r(argv[optind],
switch (cf_conv
(rrd.rra_def[rrd.stat_head->rra_cnt].cf_nam)) {
case CF_HWPREDICT:
+ case CF_MHWPREDICT:
/* initialize some parameters */
rrd.rra_def[rrd.stat_head->rra_cnt].par[RRA_hw_alpha].
u_val = 0.1;
switch (cf_conv
(rrd.rra_def[rrd.stat_head->rra_cnt].cf_nam)) {
case CF_HWPREDICT:
+ case CF_MHWPREDICT:
case CF_DEVSEASONAL:
case CF_SEASONAL:
case CF_DEVPREDICT:
switch (cf_conv
(rrd.rra_def[rrd.stat_head->rra_cnt].cf_nam)) {
case CF_HWPREDICT:
+ case CF_MHWPREDICT:
rrd.rra_def[rrd.stat_head->rra_cnt].par[RRA_hw_alpha].
u_val = atof(token);
if (atof(token) <= 0.0 || atof(token) >= 1.0)
switch (cf_conv
(rrd.rra_def[rrd.stat_head->rra_cnt].cf_nam)) {
case CF_HWPREDICT:
+ case CF_MHWPREDICT:
rrd.rra_def[rrd.stat_head->rra_cnt].par[RRA_hw_beta].
u_val = atof(token);
if (atof(token) < 0.0 || atof(token) > 1.0)
atoi(token) - 1;
break;
case CF_HWPREDICT:
+ case CF_MHWPREDICT:
/* length of the associated CF_SEASONAL and CF_DEVSEASONAL arrays. */
period = atoi(token);
if (period >
par[RRA_dependent_rra_idx].u_cnt, rrd.stat_head->rra_cnt);
#endif
/* should we create CF_SEASONAL, CF_DEVSEASONAL, and CF_DEVPREDICT? */
- if (cf_conv(rrd.rra_def[rrd.stat_head->rra_cnt].cf_nam) ==
- CF_HWPREDICT
+ if ((cf_conv(rrd.rra_def[rrd.stat_head->rra_cnt].cf_nam) ==
+ CF_HWPREDICT
+ || cf_conv(rrd.rra_def[rrd.stat_head->rra_cnt].cf_nam) ==
+ CF_MHWPREDICT)
&& rrd.rra_def[rrd.stat_head->rra_cnt].
par[RRA_dependent_rra_idx].u_cnt == rrd.stat_head->rra_cnt) {
#ifdef DEBUG
if ((rrd_file = fopen(file_name, "wb")) == NULL) {
rrd_set_error("creating '%s': %s", file_name, rrd_strerror(errno));
- free(rrd->stat_head);
- rrd->stat_head = NULL;
- free(rrd->ds_def);
- rrd->ds_def = NULL;
- free(rrd->rra_def);
- rrd->rra_def = NULL;
+ rrd_free(rrd);
return (-1);
}
for (i = 0; i < rrd->stat_head->rra_cnt; i++) {
switch (cf_conv(rrd->rra_def[i].cf_nam)) {
case CF_HWPREDICT:
+ case CF_MHWPREDICT:
init_hwpredict_cdp(rrd->cdp_prep);
break;
case CF_SEASONAL: