diff options
| author | hugetoad <hugetoad@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2005-09-06 12:43:51 +0000 |
|---|---|---|
| committer | hugetoad <hugetoad@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2005-09-06 12:43:51 +0000 |
| commit | b1520802cdec666ee690af8920162c6075079903 (patch) | |
| tree | 75590612b2f2469a55c205a3931a9ebecefc5d65 /src | |
| parent | 0c73f6de93f75b5c3875ea46d5160884d3e08389 (diff) | |
- added support of timestamp format for log files (Alexei)
git-svn-id: svn://svn.zabbix.com/trunk@2041 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'src')
| -rw-r--r-- | src/zabbix_server/functions.c | 40 |
1 files changed, 26 insertions, 14 deletions
diff --git a/src/zabbix_server/functions.c b/src/zabbix_server/functions.c index 48c71565..bd6878e4 100644 --- a/src/zabbix_server/functions.c +++ b/src/zabbix_server/functions.c @@ -378,7 +378,10 @@ void calc_timestamp(char *line,int *timestamp, char *format) int hh=0,mm=0,ss=0,yyyy=0,dd=0,MM=0; int hhc=0,mmc=0,ssc=0,yyyyc=0,ddc=0,MMc=0; int i,num; - struct tm *tm; + struct tm tm; + time_t t; + + zabbix_log( LOG_LEVEL_DEBUG, "In calc_timestamp()"); hh=mm=ss=yyyy=dd=MM=0; @@ -389,42 +392,51 @@ void calc_timestamp(char *line,int *timestamp, char *format) switch ((char) format[i]) { case 'h': - hh=hh+hhc*num; + hh=10*hh+num; hhc++; break; case 'm': - mm=mm+mmc*num; + mm=10*mm+num; mmc++; break; case 's': - ss=ss+ssc*num; + ss=10*ss+num; ssc++; break; case 'y': - yyyy=yyyy+yyyyc*num; + yyyy=10*yyyy+num; yyyyc++; break; case 'd': - dd=dd+ddc*num; + dd=10*dd+num; ddc++; break; case 'M': - MM=MM+MMc*num; + MM=10*MM+num; MMc++; break; } } + zabbix_log( LOG_LEVEL_DEBUG, "hh [%d] mm [%d] ss [%d] yyyy [%d] dd [%d] MM [%d]",hh,mm,ss,yyyy,dd,MM); + if(hh!=0&&mm!=0&&ss!=0&&yyyy!=0&&dd!=0&&MM!=0) { - tm->tm_sec=ss; - tm->tm_min=mm; - tm->tm_hour=hh; - tm->tm_mday=dd; - tm->tm_mon=MM; - tm->tm_year=yyyy; - *timestamp=mktime(tm); + tm.tm_sec=ss; + tm.tm_min=mm; + tm.tm_hour=hh; + tm.tm_mday=dd; + tm.tm_mon=MM; + tm.tm_year=yyyy-1900; + + t=mktime(&tm); + if(t>0) + { + *timestamp=t; + } } + zabbix_log( LOG_LEVEL_DEBUG, "end timestamp [%d]", t); + zabbix_log( LOG_LEVEL_DEBUG, "end timestamp [%d]", *timestamp); } /****************************************************************************** |
