summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorhugetoad <hugetoad@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2005-09-06 12:43:51 +0000
committerhugetoad <hugetoad@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2005-09-06 12:43:51 +0000
commitb1520802cdec666ee690af8920162c6075079903 (patch)
tree75590612b2f2469a55c205a3931a9ebecefc5d65 /src
parent0c73f6de93f75b5c3875ea46d5160884d3e08389 (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.c40
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);
}
/******************************************************************************