trigger: rework timeout handling and command queueing
authorFelix Fietkau <nbd@nbd.name>
Fri, 29 Jul 2016 11:52:38 +0000 (13:52 +0200)
committerFelix Fietkau <nbd@nbd.name>
Fri, 29 Jul 2016 12:03:47 +0000 (14:03 +0200)
commit2c9f5d4af1559b840c42f1443ede9f9fe809c58b
treeb3fd3b67224de80ca9da33f1746797eeffee5ca6
parent8eecf942b50d88dbcd7517817fe5c557f10541e0
trigger: rework timeout handling and command queueing

Instead of queueing the full json_script, only queue actual script calls
issued by it. This fixes a long standing issue where trigger events were
dropped, triggered by the following scenario:

- Set up a trigger with timeout and condition check in the script.
- Fire an event that matches the condition.
- Fire another event that does not match the condition.

This series of events will fire the delay timer of the trigger, but the
second event will replace the trigger event data. When the timer
expires, the json_script is run, but no script call is issued

Signed-off-by: Felix Fietkau <nbd@nbd.name>
service/trigger.c