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;
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,
/* 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);