From 158a82b80ebd27f6bfbfdfbb7d04a4865d007b20 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Wed, 30 Oct 2024 22:45:32 +0200 Subject: [PATCH] config: Add config_filters_equal_no_recursion() --- src/config/config-filter.c | 14 +++++++++++--- src/config/config-filter.h | 2 ++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/config/config-filter.c b/src/config/config-filter.c index 0743577396..f608f28de6 100644 --- a/src/config/config-filter.c +++ b/src/config/config-filter.c @@ -94,9 +94,8 @@ bool config_filter_match(const struct config_filter *mask, return mask == NULL && filter == NULL; } -static bool -config_filters_equal_without_defaults(const struct config_filter *f1, - const struct config_filter *f2) +bool config_filters_equal_no_recursion(const struct config_filter *f1, + const struct config_filter *f2) { if (null_strcmp(f1->service, f2->service) != 0) return FALSE; @@ -118,6 +117,15 @@ config_filters_equal_without_defaults(const struct config_filter *f1, return FALSE; if (f1->filter_name_array != f2->filter_name_array) return FALSE; + return TRUE; +} + +static bool +config_filters_equal_without_defaults(const struct config_filter *f1, + const struct config_filter *f2) +{ + if (!config_filters_equal_no_recursion(f1, f2)) + return FALSE; if (f1->parent != NULL || f2->parent != NULL) { /* Check the parents' compatibility also. However, it's possible that one of these parents is the empty root filter, diff --git a/src/config/config-filter.h b/src/config/config-filter.h index f35ecc7951..7012dd96b4 100644 --- a/src/config/config-filter.h +++ b/src/config/config-filter.h @@ -62,6 +62,8 @@ bool config_filter_match(const struct config_filter *mask, /* Returns TRUE if two filters are fully equal. */ bool config_filters_equal(const struct config_filter *f1, const struct config_filter *f2); +bool config_filters_equal_no_recursion(const struct config_filter *f1, + const struct config_filter *f2); /* Returns TRUE if filter is empty, and it has no parent filters, and it has default_settings=FALSE. */ bool config_filter_is_empty(const struct config_filter *filter); -- 2.47.3