mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 06:38:20 +00:00

Historically, a 'when' condition performed an AST-traversal to locate any index-expressions like `x[9]` and evaluated them so that it could register the associated value as something for which it needs to receive "modification" notifications. Evaluating arbitrary expressions during an AST-traversal like that ignores the typical order-of-evaluation/short-circuiting you'd expect if the condition was evaluated normally, from its root expression. Now, a new subclass of IndexExpr is used to keep track of all IndexExpr results in the context of evaluating a 'when' condition without having to do a secondary AST-traversal-and-eval. i.e. the first evaluation of the full 'when' condition follows the typical expression-evaluation semantics (as always), but additionally now captures all the values a Trigger needs to monitor for modifications.
9 lines
207 B
Text
9 lines
207 B
Text
running myevent, 1
|
|
running myevent, 2
|
|
running myevent, 3
|
|
running myevent, 4
|
|
running myevent, 5
|
|
triggered when condition against 'x'
|
|
running myevent, 6
|
|
triggered when condition against 'y'
|
|
running myevent, 7
|