41942258112e4131de96b6a4399c1a8ac83a23cbTimo Sirainen /* local_name is for TLS SNI requests.
41942258112e4131de96b6a4399c1a8ac83a23cbTimo Sirainen both local_name and local_bits can't be set at the same time. */
41942258112e4131de96b6a4399c1a8ac83a23cbTimo Sirainen /* the hosts are used only in doveconf output */
94163c620a8880024d0e8bbb503c788159fa222bTimo Sirainen /* NULL-terminated array of parsers */
637ec4c33b4715737a41f7e58c9b6d1f693c27e2Timo SirainenARRAY_DEFINE_TYPE(config_filter_parsers, struct config_filter_parser *);
1358e2c58ce29231485a5cfa454756d429ad3d2cTimo Sirainenstruct config_filter_context *config_filter_init(pool_t pool);
1358e2c58ce29231485a5cfa454756d429ad3d2cTimo Sirainenvoid config_filter_deinit(struct config_filter_context **ctx);
94163c620a8880024d0e8bbb503c788159fa222bTimo Sirainen/* Replace filter's parsers with given parser list. */
1358e2c58ce29231485a5cfa454756d429ad3d2cTimo Sirainenvoid config_filter_add_all(struct config_filter_context *ctx,
637ec4c33b4715737a41f7e58c9b6d1f693c27e2Timo Sirainen/* Build new parsers from all existing ones matching the given filter. */
6ed1e82824590b514201d9db84ba96bdfc832dd5Timo Sirainenint config_filter_parsers_get(struct config_filter_context *ctx, pool_t pool,
633a3da9d3e9a5befd3405f6651043a6bdd327cbTimo Sirainen const char *const *modules,
5d03d9f439e41c90215a3c938ffebe4c2a8ae257Timo Sirainen struct master_service_settings_output *output_r,
6ed1e82824590b514201d9db84ba96bdfc832dd5Timo Sirainenvoid config_filter_parsers_free(struct config_module_parser *parsers);
c0787d6ab19f4a17ec08699d0bbc77f13a9b02a9Timo Sirainen/* Return a list of filters that are a subset of the given filter. */
c0787d6ab19f4a17ec08699d0bbc77f13a9b02a9Timo Sirainenconfig_filter_find_subset(struct config_filter_context *ctx,
1358e2c58ce29231485a5cfa454756d429ad3d2cTimo Sirainen/* Returns TRUE if filter matches mask. */
1358e2c58ce29231485a5cfa454756d429ad3d2cTimo Sirainenbool config_filter_match(const struct config_filter *mask,
1358e2c58ce29231485a5cfa454756d429ad3d2cTimo Sirainen/* Returns TRUE if two filters are fully equal. */
1358e2c58ce29231485a5cfa454756d429ad3d2cTimo Sirainenbool config_filters_equal(const struct config_filter *f1,