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)
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);