From: oetiker Date: Sat, 12 Apr 2008 09:21:31 +0000 (+0000) Subject: do not mess with dst status after running localtime, the system gets confused otherwh... X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=a23815383506301c57ef5d0c9d54d47e76c6e18c;p=rrdtool.git do not mess with dst status after running localtime, the system gets confused otherwhise when it comes to times during the switch over periode as DST changes to non DST. -- tobi git-svn-id: svn://svn.oetiker.ch/rrdtool/branches/1.2/program@1323 a5681a0c-68f1-0310-ab6d-d61299d08faa --- diff --git a/src/parsetime.c b/src/parsetime.c index 919dd50..74063b2 100644 --- a/src/parsetime.c +++ b/src/parsetime.c @@ -721,7 +721,7 @@ day(struct rrd_time_value *ptv) break; } - if (mon > 19700101 && mon < 24000101){ /*works between 1900 and 2400 */ + if (mon > 19700101 && mon < 24000101){ /*works between 1970 and 2400 */ char cmon[3],cmday[3],cyear[5]; strncpy(cyear,sc_token,4);cyear[4]='\0'; year = atol(cyear); @@ -798,7 +798,8 @@ parsetime(const char *tspec, struct rrd_time_value *ptv) ptv->type = ABSOLUTE_TIME; ptv->offset = 0; ptv->tm = *localtime(&now); - ptv->tm.tm_isdst = -1; /* mk time can figure this out for us ... */ + ptv->tm.tm_isdst = -1; /* by default lets mk time guess dst status ... */ + token(); switch (sc_tokid) { @@ -915,7 +916,6 @@ parsetime(const char *tspec, struct rrd_time_value *ptv) panic(e("unparsable trailing text: '...%s%s'", sc_token, sct)); } - ptv->tm.tm_isdst = -1; /* for mktime to guess DST status */ if( ptv->type == ABSOLUTE_TIME ) if( mktime( &ptv->tm ) == -1 ) { /* normalize & check */ /* can happen for "nonexistent" times, e.g. around 3am */