Mercurial > dovecot > core-2.2
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);