From: Timo Sirainen Date: Thu, 23 Jan 2025 21:17:13 +0000 (+0200) Subject: lib: Add event_filter_get_root_node() X-Git-Tag: 2.4.1~254 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ec5032891850ac0834b9807e54c2760906105ac3;p=thirdparty%2Fdovecot%2Fcore.git lib: Add event_filter_get_root_node() --- diff --git a/src/lib/event-filter-private.h b/src/lib/event-filter-private.h index 883d917d13..3242228209 100644 --- a/src/lib/event-filter-private.h +++ b/src/lib/event-filter-private.h @@ -117,6 +117,9 @@ int event_filter_parser_parse(struct event_filter_parser_state *state); void event_filter_parser_set_extra(void *user, void *yyscanner); void event_filter_parser_error(void *scan, const char *e); +struct event_filter_node * +event_filter_get_root_node(struct event_filter *filter, unsigned int idx); + /* the following are exposed to allow for unit testing */ bool event_filter_query_match_eval(struct event_filter_node *node, diff --git a/src/lib/event-filter.c b/src/lib/event-filter.c index a684353e18..5b397b1d85 100644 --- a/src/lib/event-filter.c +++ b/src/lib/event-filter.c @@ -1132,6 +1132,17 @@ bool event_filter_match_source(struct event_filter *filter, struct event *event, return FALSE; } +struct event_filter_node * +event_filter_get_root_node(struct event_filter *filter, unsigned int idx) +{ + if (idx >= array_count(&filter->queries)) + return NULL; + + const struct event_filter_query_internal *query = + array_idx(&filter->queries, idx); + return query->expr; +} + struct event_filter_match_iter { struct event_filter *filter; struct event *event;