From 6cbc5652ddee825899d1126ddef51f6f8bfa6467 Mon Sep 17 00:00:00 2001 From: varmojfekoj Date: Mon, 1 Sep 2008 16:00:22 +0200 Subject: bugfix: action was not called when system time was set backwards (until the previous time was reached again). There are still some side-effects when time is rolled back (A time rollback is really a bad thing to do, ideally the OS should issue pseudo time (like NetWare did) when the user tries to roll back time). Signed-off-by: Rainer Gerhards --- ChangeLog | 6 ++++++ action.c | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/ChangeLog b/ChangeLog index 943d4bf7..1989d550 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +- bugfix: action was not called when system time was set backwards + (until the previous time was reached again). There are still some + side-effects when time is rolled back (A time rollback is really a bad + thing to do, ideally the OS should issue pseudo time (like NetWare did) + when the user tries to roll back time). Thanks to varmojfekoj for this + patch. --------------------------------------------------------------------------- Version 3.18.3 (rgerhards), 2008-08-18 - bugfix: imfile could cause a segfault upon rsyslogd HUP and termination diff --git a/action.c b/action.c index 39c37b5b..8b47f541 100644 --- a/action.c +++ b/action.c @@ -544,6 +544,10 @@ actionWriteToAction(action_t *pAction) dbgprintf("Called action, logging to %s", module.GetStateName(pAction->pMod)); time(&now); /* we need this for message repeation processing AND $ActionExecOnlyOnceEveryInterval */ + if(pAction->tLastExec > now) { + /* if we are traveling back in time, reset tLastExec */ + pAction->tLastExec = (time_t) 0; + } /* now check if we need to drop the message because otherwise the action would be too * frequently called. -- rgerhards, 2008-04-08 */ -- cgit v1.2.3