]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-master: Cleanup - Add new helper function for parsing log filter settings
authorTimo Sirainen <timo.sirainen@dovecot.fi>
Mon, 16 Apr 2018 10:32:15 +0000 (13:32 +0300)
committerVille Savolainen <ville.savolainen@dovecot.fi>
Wed, 25 Apr 2018 08:03:39 +0000 (11:03 +0300)
src/lib-master/master-service-settings.c

index 5ee7382a75f5077eaf65a4e6a988e9a0babf5d9a..c2cdc3553cf69bec88fafc176758e6c01703588f 100644 (file)
@@ -122,6 +122,21 @@ int master_service_log_filter_parse(struct event_filter *filter, const char *str
        return 0;
 }
 
+static bool
+log_filter_parse(const char *set_name, const char *set_value,
+                struct event_filter **filter_r, const char **error_r)
+{
+       const char *error;
+
+       *filter_r = event_filter_create();
+       if (master_service_log_filter_parse(*filter_r, set_value, &error) < 0) {
+               *error_r = t_strdup_printf("Invalid %s: %s", set_name, error);
+               event_filter_unref(filter_r);
+               return FALSE;
+       }
+       return TRUE;
+}
+
 static bool
 master_service_settings_check(void *_set, pool_t pool ATTR_UNUSED,
                              const char **error_r)
@@ -138,13 +153,10 @@ master_service_settings_check(void *_set, pool_t pool ATTR_UNUSED,
                                           set->syslog_facility);
                return FALSE;
        }
-       struct event_filter *filter = event_filter_create();
-       const char *error;
-       if (master_service_log_filter_parse(filter, set->log_debug, &error) < 0) {
-               *error_r = t_strdup_printf("Invalid log_debug: %s", error);
-               event_filter_unref(&filter);
+
+       struct event_filter *filter;
+       if (!log_filter_parse("log_debug", set->log_debug, &filter, error_r))
                return FALSE;
-       }
 #ifndef CONFIG_BINARY
        event_set_global_debug_log_filter(filter);
 #endif