From: sergey.kitov Date: Thu, 16 Dec 2021 09:44:38 +0000 (+0200) Subject: lib-master: Refactor parsing event filters from settings. X-Git-Tag: 2.3.19~109 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=14f8d9c7341a9bd3ee96604b358859aa2304ba6c;p=thirdparty%2Fdovecot%2Fcore.git lib-master: Refactor parsing event filters from settings. --- diff --git a/src/lib-master/master-service-settings.c b/src/lib-master/master-service-settings.c index 06025f1fcb..87845a4352 100644 --- a/src/lib-master/master-service-settings.c +++ b/src/lib-master/master-service-settings.c @@ -109,22 +109,26 @@ const struct setting_parser_info master_service_setting_parser_info = { /* */ static bool -log_filter_parse(const char *set_name, const char *set_value, - struct event_filter **filter_r, const char **error_r) +setting_filter_parse(const char *set_name, const char *set_value, + void (*handle_filter)(struct event_filter *) ATTR_UNUSED, + const char **error_r) { + struct event_filter *filter; const char *error; - if (set_value[0] == '\0') { - *filter_r = NULL; + if (set_value[0] == '\0') return TRUE; - } - *filter_r = event_filter_create(); - if (event_filter_parse(set_value, *filter_r, &error) < 0) { + filter = event_filter_create(); + if (event_filter_parse(set_value, filter, &error) < 0) { *error_r = t_strdup_printf("Invalid %s: %s", set_name, error); - event_filter_unref(filter_r); + event_filter_unref(&filter); return FALSE; } +#ifndef CONFIG_BINARY + handle_filter(filter); +#endif + event_filter_unref(&filter); return TRUE; } @@ -145,25 +149,12 @@ master_service_settings_check(void *_set, pool_t pool ATTR_UNUSED, return FALSE; } - struct event_filter *filter; - if (!log_filter_parse("log_debug", set->log_debug, &filter, error_r)) + if (!setting_filter_parse("log_debug", set->log_debug, + event_set_global_debug_log_filter, error_r)) return FALSE; - if (filter != NULL) { -#ifndef CONFIG_BINARY - event_set_global_debug_log_filter(filter); -#endif - event_filter_unref(&filter); - } - - if (!log_filter_parse("log_core_filter", set->log_core_filter, - &filter, error_r)) + if (!setting_filter_parse("log_core_filter", set->log_core_filter, + event_set_global_core_log_filter, error_r)) return FALSE; - if (filter != NULL) { -#ifndef CONFIG_BINARY - event_set_global_core_log_filter(filter); -#endif - event_filter_unref(&filter); - } return TRUE; } /* */