diff options
author | Rainer Gerhards <rgerhards@adiscon.com> | 2012-09-12 09:50:22 +0200 |
---|---|---|
committer | Rainer Gerhards <rgerhards@adiscon.com> | 2012-09-12 09:50:22 +0200 |
commit | 50abcd483b422e3e4f0b67a925fa8cdf71936f12 (patch) | |
tree | 23a4e1ad47c4d6847fdf02e884e61845aa06e949 /runtime/ruleset.c | |
parent | 1edcc863df960549a5402003085293ac6e127d07 (diff) | |
download | rsyslog-50abcd483b422e3e4f0b67a925fa8cdf71936f12.tar.gz rsyslog-50abcd483b422e3e4f0b67a925fa8cdf71936f12.tar.xz rsyslog-50abcd483b422e3e4f0b67a925fa8cdf71936f12.zip |
new ruleengine: bugfix, messages were processed multiple times
Diffstat (limited to 'runtime/ruleset.c')
-rw-r--r-- | runtime/ruleset.c | 12 |
1 files changed, 2 insertions, 10 deletions
diff --git a/runtime/ruleset.c b/runtime/ruleset.c index 74f078b6..7b53fe3b 100644 --- a/runtime/ruleset.c +++ b/runtime/ruleset.c @@ -149,9 +149,6 @@ finalize_it: * contains rules from multiple rulesets. In this case, we can not push * the whole batch through the ruleset. Instead, we examine it and * partition it into sub-rulesets which we then push through the system. - * Note that when we evaluate which message must be processed, we do NOT need - * to look at bFilterOK, because this value is only set in a later processing - * stage. Doing so caused a bug during development ;) * rgerhards, 2010-06-15 */ static inline rsRetVal @@ -217,13 +214,8 @@ execAct(struct cnfstmt *stmt, batch_t *pBatch, sbool *active) int i; DEFiRet; dbgprintf("RRRR: execAct: batch of %d elements, active %p\n", batchNumMsgs(pBatch), active); - for(i = 0 ; i < batchNumMsgs(pBatch) && !*(pBatch->pbShutdownImmediate) ; ++i) { - if( pBatch->pElem[i].state != BATCH_STATE_DISC - && (active == NULL || active[i])) { - DBGPRINTF("Processing next action [active=%p]\n", active); - stmt->d.act->submitToActQ(stmt->d.act, pBatch); - } - } + pBatch->active = active; + stmt->d.act->submitToActQ(stmt->d.act, pBatch); RETiRet; } |