summaryrefslogtreecommitdiffstats
path: root/runtime/ruleset.c
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2012-09-12 09:50:22 +0200
committerRainer Gerhards <rgerhards@adiscon.com>2012-09-12 09:50:22 +0200
commit50abcd483b422e3e4f0b67a925fa8cdf71936f12 (patch)
tree23a4e1ad47c4d6847fdf02e884e61845aa06e949 /runtime/ruleset.c
parent1edcc863df960549a5402003085293ac6e127d07 (diff)
downloadrsyslog-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.c12
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;
}