X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Frrd_update.c;h=cca6e52e331581ded088c5e24589970411ac999c;hb=2e6c98e893777e4abf7b05cb4ecf81dde088cdb8;hp=9d7d251e3eccdd65e442d1d1de67f11b3d30244e;hpb=7a942d263044e07b9e861472361b544d4133af71;p=rrdtool.git diff --git a/src/rrd_update.c b/src/rrd_update.c index 9d7d251..cca6e52 100644 --- a/src/rrd_update.c +++ b/src/rrd_update.c @@ -1,5 +1,5 @@ /***************************************************************************** - * RRDtool 1.2.15 Copyright by Tobi Oetiker, 1997-2006 + * RRDtool 1.2.19 Copyright by Tobi Oetiker, 1997-2007 ***************************************************************************** * rrd_update.c RRD Update Function ***************************************************************************** @@ -266,6 +266,7 @@ _rrd_update(char *filename, char *tmplt, int argc, char **argv, unsigned long rrd_filesize; #endif + rpnstack_init(&rpnstack); /* need at least 1 arguments: data. */ @@ -427,7 +428,7 @@ _rrd_update(char *filename, char *tmplt, int argc, char **argv, #endif /* loop through the arguments. */ for(arg_i=0; arg_ids_cnt;ii++) updvals[ii] = "U"; - strcpy(stepper,argv[arg_i]); updvals[0]=stepper; /* separate all ds elements; first must be examined separately due to alternate time syntax */ @@ -461,7 +462,7 @@ _rrd_update(char *filename, char *tmplt, int argc, char **argv, *p = '\0'; stepper = p+1; } else { - rrd_set_error("expected timestamp not found in data source from %s:...", + rrd_set_error("expected timestamp not found in data source from %s", argv[arg_i]); free(step_start); break; @@ -480,7 +481,7 @@ _rrd_update(char *filename, char *tmplt, int argc, char **argv, } if (ii != tmpl_cnt-1) { - rrd_set_error("expected %lu data source readings (got %lu) from %s:...", + rrd_set_error("expected %lu data source readings (got %lu) from %s", tmpl_cnt-1, ii, argv[arg_i]); free(step_start); break; @@ -589,9 +590,9 @@ _rrd_update(char *filename, char *tmplt, int argc, char **argv, dst_idx= dst_conv(rrd.ds_def[i].dst); /* make sure we do not build diffs with old last_ds values */ - if(rrd.ds_def[i].par[DS_mrhb_cnt].u_cnt < interval - && ( dst_idx == DST_COUNTER || dst_idx == DST_DERIVE)){ + if(rrd.ds_def[i].par[DS_mrhb_cnt].u_cnt < interval) { strncpy(rrd.pdp_prep[i].last_ds,"U",LAST_DS_LEN-1); + rrd.pdp_prep[i].last_ds[LAST_DS_LEN-1]='\0'; } /* NOTE: DST_CDEF should never enter this if block, because @@ -700,11 +701,8 @@ _rrd_update(char *filename, char *tmplt, int argc, char **argv, rrd.pdp_prep[i].last_ds, updvals[i+1], pdp_new[i]); #endif - if(dst_idx == DST_COUNTER || dst_idx == DST_DERIVE){ - strncpy(rrd.pdp_prep[i].last_ds, - updvals[i+1],LAST_DS_LEN-1); - rrd.pdp_prep[i].last_ds[LAST_DS_LEN-1]='\0'; - } + strncpy(rrd.pdp_prep[i].last_ds, updvals[i+1],LAST_DS_LEN-1); + rrd.pdp_prep[i].last_ds[LAST_DS_LEN-1]='\0'; } /* break out of the argument parsing loop if the error_string is set */ if (rrd_test_error()){