From: sergey.kitov Date: Wed, 20 Sep 2023 14:50:14 +0000 (+0300) Subject: login-common: change login_plugins to BOOLLIST. X-Git-Tag: 2.4.1~850 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f186150a82904a9206d5c9dafb641d03a4c791ed;p=thirdparty%2Fdovecot%2Fcore.git login-common: change login_plugins to BOOLLIST. --- diff --git a/src/login-common/client-common.c b/src/login-common/client-common.c index 1682dcb447..c322550c94 100644 --- a/src/login-common/client-common.c +++ b/src/login-common/client-common.c @@ -29,6 +29,7 @@ #include "auth-client.h" #include "dsasl-client.h" #include "login-proxy.h" +#include "settings-parser.h" #include "client-common.h" struct client *clients = NULL; diff --git a/src/login-common/login-settings.c b/src/login-common/login-settings.c index 4cedeb0e7b..c4b36c20b8 100644 --- a/src/login-common/login-settings.c +++ b/src/login-common/login-settings.c @@ -21,7 +21,7 @@ static const struct setting_define login_setting_defines[] = { DEF(STR_NOVARS, login_log_format), DEF(STR, login_proxy_notify_path), DEF(STR, login_plugin_dir), - DEF(STR, login_plugins), + DEF(BOOLLIST, login_plugins), DEF(TIME_MSECS, login_proxy_timeout), DEF(UINT, login_proxy_max_reconnects), DEF(TIME, login_proxy_max_disconnect_delay), @@ -51,7 +51,7 @@ static const struct login_settings login_default_settings = { .login_log_format = "%$: %s", .login_proxy_notify_path = "proxy-notify", .login_plugin_dir = MODULEDIR"/login", - .login_plugins = "", + .login_plugins = ARRAY_INIT, .login_proxy_timeout = 30*1000, .login_proxy_max_reconnects = 3, .login_proxy_max_disconnect_delay = 0, diff --git a/src/login-common/login-settings.h b/src/login-common/login-settings.h index 9ccb7b973d..d3e3eee133 100644 --- a/src/login-common/login-settings.h +++ b/src/login-common/login-settings.h @@ -10,7 +10,7 @@ struct login_settings { const char *login_access_sockets; const char *login_proxy_notify_path; const char *login_plugin_dir; - const char *login_plugins; + ARRAY_TYPE(const_string) login_plugins; unsigned int login_proxy_timeout; unsigned int login_proxy_max_reconnects; unsigned int login_proxy_max_disconnect_delay; diff --git a/src/login-common/main.c b/src/login-common/main.c index a2c5234055..b9eecb17db 100644 --- a/src/login-common/main.c +++ b/src/login-common/main.c @@ -20,6 +20,7 @@ #include "dsasl-client.h" #include "master-service-settings.h" #include "login-proxy.h" +#include "settings-parser.h" #include #include @@ -313,7 +314,7 @@ static void login_load_modules(void) { struct module_dir_load_settings mod_set; - if (global_login_settings->login_plugins[0] == '\0') + if (array_is_empty(&global_login_settings->login_plugins)) return; i_zero(&mod_set); @@ -324,7 +325,7 @@ static void login_load_modules(void) mod_set.debug = login_debug; modules = module_dir_load(global_login_settings->login_plugin_dir, - t_strsplit_spaces(global_login_settings->login_plugins, ", "), + settings_boollist_get(&global_login_settings->login_plugins), &mod_set); module_dir_init(modules); }