]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
config: Add config_filter_get_all
authorAki Tuomi <aki.tuomi@dovecot.fi>
Thu, 30 Nov 2017 13:46:40 +0000 (15:46 +0200)
committerVille Savolainen <ville.savolainen@dovecot.fi>
Tue, 6 Mar 2018 10:13:24 +0000 (12:13 +0200)
Returns all filters

src/config/config-filter.c
src/config/config-filter.h

index 78d65e8d232df4b77fc77f2b57ec48d78aa000a4..2805e9dbe000d7301595243c067463f7ce7ddd90 100644 (file)
@@ -251,6 +251,21 @@ config_filter_find_all(struct config_filter_context *ctx, pool_t pool,
        return array_idx(&matches, 0);
 }
 
+struct config_filter_parser *const *
+config_filter_get_all(struct config_filter_context *ctx)
+{
+       ARRAY_TYPE(config_filter_parsers) filters;
+       unsigned int i;
+
+       t_array_init(&filters, 8);
+       for (i = 0; ctx->parsers[i] != NULL; i++) {
+               array_append(&filters, &ctx->parsers[i], 1);
+       }
+       array_sort(&filters, config_filter_parser_cmp_rev);
+       array_append_zero(&filters);
+       return array_idx(&filters, 0);
+}
+
 struct config_filter_parser *const *
 config_filter_find_subset(struct config_filter_context *ctx,
                          const struct config_filter *filter)
index 7e45fc1a772058e03dfb72f44de6a2815bfd46ae..fda3182f3699d8198285b18039f3ebd8d3b23f7e 100644 (file)
@@ -45,6 +45,9 @@ struct config_filter_parser *const *
 config_filter_find_subset(struct config_filter_context *ctx,
                          const struct config_filter *filter);
 
+struct config_filter_parser *const *
+config_filter_get_all(struct config_filter_context *ctx);
+
 /* Returns TRUE if filter matches mask. */
 bool config_filter_match(const struct config_filter *mask,
                         const struct config_filter *filter);