From 20a97dbba73145194e47cbd15f7a986e643e826e Mon Sep 17 00:00:00 2001 From: Vftdan Date: Sat, 17 Aug 2024 14:28:38 +0200 Subject: [PATCH] Input index event predicate --- config.c | 5 ++++- event_predicate.c | 5 ++++- event_predicate.h | 1 + 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/config.c b/config.c index 37548fc..ee62604 100644 --- a/config.c +++ b/config.c @@ -266,6 +266,9 @@ parse_event_predicate_type(const char *name) if (strcmp(name, "payload") == 0) { return EVPRED_PAYLOAD; } + if (strcmp(name, "input_index") == 0) { + return EVPRED_INPUT_INDEX; + } if (strcmp(name, "conjunction") == 0 || strcmp(name, "and") == 0) { return EVPRED_CONJUNCTION; } @@ -295,7 +298,7 @@ load_single_predicate(const config_setting_t * setting, EventPredicateHandleRegi return -1; case EVPRED_ACCEPT: break; - case EVPRED_CODE_NS...EVPRED_PAYLOAD: + case EVPRED_CODE_NS...EVPRED_INPUT_INDEX: { int64_t min_value = INT64_MIN; int64_t max_value = INT64_MAX; diff --git a/event_predicate.c b/event_predicate.c index 26d45a1..b7899d4 100644 --- a/event_predicate.c +++ b/event_predicate.c @@ -109,7 +109,7 @@ event_predicate_apply(EventPredicateHandle handle, EventNode * event) case EVPRED_ACCEPT: accepted = true; break; - case EVPRED_CODE_NS...EVPRED_PAYLOAD: + case EVPRED_CODE_NS...EVPRED_INPUT_INDEX: if (!event) { return EVPREDRES_DISABLED; } @@ -128,6 +128,9 @@ event_predicate_apply(EventPredicateHandle handle, EventNode * event) case EVPRED_PAYLOAD: actual = event->data.payload; break; + case EVPRED_INPUT_INDEX: + actual = event->input_index; + break; default: return EVPREDRES_DISABLED; } diff --git a/event_predicate.h b/event_predicate.h index f2ad2c7..ca31f76 100644 --- a/event_predicate.h +++ b/event_predicate.h @@ -14,6 +14,7 @@ typedef enum { EVPRED_CODE_MAJOR, EVPRED_CODE_MINOR, EVPRED_PAYLOAD, + EVPRED_INPUT_INDEX, // Aggregation EVPRED_CONJUNCTION, EVPRED_DISJUNCTION,