X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Frrdtool.c;h=56ef581e3596a522656380da219f408bec0dce43;hb=90ac9957e95378d729bce1c00bb0ef2efadab33e;hp=4d4b87cbeaa38b63201dcb12153596caaa04a1dc;hpb=27f6db4769cac5727888c327dbbf1b88da4f3ca6;p=collectd.git diff --git a/src/rrdtool.c b/src/rrdtool.c index 4d4b87cb..56ef581e 100644 --- a/src/rrdtool.c +++ b/src/rrdtool.c @@ -337,6 +337,7 @@ static int rrd_create_file (char *filename, const data_set_t *ds, const value_li int ds_num; int i, j; char stepsize_str[16]; + char begin_str[16]; int status = 0; if (check_create_dir (filename)) @@ -354,7 +355,7 @@ static int rrd_create_file (char *filename, const data_set_t *ds, const value_li return (-1); } - argc = ds_num + rra_num + 4; + argc = ds_num + rra_num + 6; if ((argv = (char **) malloc (sizeof (char *) * (argc + 1))) == NULL) { @@ -375,12 +376,23 @@ static int rrd_create_file (char *filename, const data_set_t *ds, const value_li return (-1); } + assert (vl->time > 10); + status = snprintf (begin_str, sizeof (begin_str), + "%llu", (unsigned long long) (vl->time - 10)); + if ((status < 1) || (status >= sizeof (begin_str))) + { + ERROR ("rrdtool plugin: snprintf failed."); + return (-1); + } + argv[0] = "create"; argv[1] = filename; - argv[2] = "-s"; - argv[3] = stepsize_str; + argv[2] = "-b"; + argv[3] = begin_str; + argv[4] = "-s"; + argv[5] = stepsize_str; - j = 4; + j = 6; for (i = 0; i < ds_num; i++) argv[j++] = ds_def[i]; for (i = 0; i < rra_num; i++)