From: oetiker Date: Sun, 12 Jun 2005 20:01:57 +0000 (+0000) Subject: kill the last stored counter value if the updates comes after mrhb X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=6e89314ff4fae9d4589de80358ef115743f9d89f;p=rrdtool-all.git kill the last stored counter value if the updates comes after mrhb to make sure it does not get taken into account accedenly later on. git-svn-id: svn://svn.oetiker.ch/rrdtool/branches/1.2@634 a5681a0c-68f1-0310-ab6d-d61299d08faa --- diff --git a/program/src/rrd_update.c b/program/src/rrd_update.c index 95e92716..d8e8866c 100644 --- a/program/src/rrd_update.c +++ b/program/src/rrd_update.c @@ -595,10 +595,18 @@ _rrd_update(char *filename, char *template, int argc, char **argv, for(i=0;ids_cnt;i++){ enum dst_en dst_idx; dst_idx= dst_conv(rrd.ds_def[i].dst); - /* NOTE: DST_CDEF should never enter this if block, because - * updvals[i+1][0] is initialized to 'U'; unless the caller - * accidently specified a value for the DST_CDEF. To handle - * this case, an extra check is required. */ + + /* 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)){ + strncpy(rrd.pdp_prep[i].last_ds,"U",LAST_DS_LEN-1); + } + + /* NOTE: DST_CDEF should never enter this if block, because + * updvals[i+1][0] is initialized to 'U'; unless the caller + * accidently specified a value for the DST_CDEF. To handle + * this case, an extra check is required. */ + if((updvals[i+1][0] != 'U') && (dst_idx != DST_CDEF) && rrd.ds_def[i].par[DS_mrhb_cnt].u_cnt >= interval) {