From 34673c266151a28a4aa8d76c7657ab55d12bc3c5 Mon Sep 17 00:00:00 2001 From: Jan David Mol <mol@astron.nl> Date: Tue, 26 Apr 2011 13:20:38 +0000 Subject: [PATCH] bug 1362: more solid mktime() handling --- .../src/CEPlogProcessor/CEPlogProcessor.cc | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/MAC/APL/CEPCU/src/CEPlogProcessor/CEPlogProcessor.cc b/MAC/APL/CEPCU/src/CEPlogProcessor/CEPlogProcessor.cc index ec82171cf76..1f32aaaf49f 100644 --- a/MAC/APL/CEPCU/src/CEPlogProcessor/CEPlogProcessor.cc +++ b/MAC/APL/CEPCU/src/CEPlogProcessor/CEPlogProcessor.cc @@ -463,8 +463,15 @@ time_t CEPlogProcessor::_parseDateTime(const char *datestr, const char *timestr) } if (validtime) { + tm.tm_isdst = 0; // UTC knows no daylight saving + ts = mktime(&tm); - } else { + + if (ts <= 0) + validtime = false; + } + + if (!validtime) { LOG_WARN_STR("Invalid timestamp: " << datestr << " " << timestr << "; using now()"); ts = time(0L); @@ -480,6 +487,10 @@ time_t CEPlogProcessor::_parseDateTime(const char *datestr, const char *timestr) // void CEPlogProcessor::_processLogLine(const char *cString) { + if (*cString == 0) { + return; + } + // example log line: // Storage@00 09-12-10 11:33:13.240 DEBUG [obs 21855 output 1 subband 223] InputThread::~InputThread() unsigned bufsize = strlen( cString ) + 1; @@ -487,10 +498,7 @@ void CEPlogProcessor::_processLogLine(const char *cString) vector<char> processName(bufsize), date(bufsize), time(bufsize), loglevel(bufsize), msg(bufsize); int processNr; - if (*cString == 0) { - return; - } - + // TODO: support both exe@nr (IONProc@00) and exe@host (Storage_main@locus002) if (sscanf(cString, "%[^@]@%d %s %s %s %[^\n]", &processName[0], &processNr, -- GitLab