X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Futils_rrdcreate.c;h=91ac6ce548e878b4078e17d89cc7ce609995ee51;hb=61fba41289decabc1a18c855fcd462fece9ab983;hp=5f21a17b8391c40e41de4e531d144d794a1bd359;hpb=edd0e2639a241167e213ec301bfc71c7d291ee61;p=collectd.git diff --git a/src/utils_rrdcreate.c b/src/utils_rrdcreate.c index 5f21a17b..91ac6ce5 100644 --- a/src/utils_rrdcreate.c +++ b/src/utils_rrdcreate.c @@ -103,7 +103,10 @@ static int rra_get (char ***ret, const value_list_t *vl, /* {{{ */ return (-1); } - ss = (cfg->stepsize > 0) ? cfg->stepsize : vl->interval; + if (cfg->stepsize > 0) + ss = cfg->stepsize; + else + ss = (int) CDTIME_T_TO_TIME_T (vl->interval); if (ss <= 0) { *ret = NULL; @@ -153,7 +156,7 @@ static int rra_get (char ***ret, const value_list_t *vl, /* {{{ */ if (rra_num >= rra_max) break; - status = ssnprintf (buffer, sizeof (buffer), "RRA:%s:%3.1f:%u:%u", + status = ssnprintf (buffer, sizeof (buffer), "RRA:%s:%.10f:%u:%u", rra_types[j], cfg->xff, cdp_len, cdp_num); if ((status < 0) || ((size_t) status >= sizeof (buffer))) @@ -241,7 +244,9 @@ static int ds_get (char ***ret, /* {{{ */ status = ssnprintf (buffer, sizeof (buffer), "DS:%s:%s:%i:%s:%s", d->name, type, - (cfg->heartbeat > 0) ? cfg->heartbeat : (2 * vl->interval), + (cfg->heartbeat > 0) + ? cfg->heartbeat + : (int) CDTIME_T_TO_TIME_T (2 * vl->interval), min, max); if ((status < 1) || ((size_t) status >= sizeof (buffer))) break; @@ -369,6 +374,7 @@ int cu_rrd_create_file (const char *filename, /* {{{ */ int ds_num; int status = 0; time_t last_up; + unsigned long stepsize; if (check_create_dir (filename)) return (-1); @@ -399,15 +405,17 @@ int cu_rrd_create_file (const char *filename, /* {{{ */ memcpy (argv + ds_num, rra_def, rra_num * sizeof (char *)); argv[ds_num + rra_num] = NULL; - if (vl->time == 0) - last_up = time (NULL) - 10; + last_up = CDTIME_T_TO_TIME_T (vl->time); + if (last_up <= 10) + last_up = time (NULL); + last_up -= 10; + + if (cfg->stepsize > 0) + stepsize = cfg->stepsize; else - last_up = CDTIME_T_TO_TIME_T (vl->time) - 10; + stepsize = (unsigned long) CDTIME_T_TO_TIME_T (vl->interval); - assert (vl->time > 10); - status = srrd_create (filename, - (cfg->stepsize > 0) ? cfg->stepsize : vl->interval, - last_up, + status = srrd_create (filename, stepsize, last_up, argc, (const char **) argv); free (argv);