changeset 22876:9e2e4c1fb34e

config: Add config_filter_get_all Returns all filters
author Aki Tuomi <aki.tuomi@dovecot.fi>
date Thu, 30 Nov 2017 15:46:40 +0200
parents 1984770187f7
children 017c83019f41
files src/config/config-filter.c src/config/config-filter.h
diffstat 2 files changed, 18 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/config/config-filter.c	Tue Mar 06 09:42:46 2018 +0200
+++ b/src/config/config-filter.c	Thu Nov 30 15:46:40 2017 +0200
@@ -252,6 +252,21 @@
 }
 
 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)
 {
--- a/src/config/config-filter.h	Tue Mar 06 09:42:46 2018 +0200
+++ b/src/config/config-filter.h	Thu Nov 30 15:46:40 2017 +0200
@@ -45,6 +45,9 @@
 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);