From c70aa9df5e0a437f7b636dd703be99d4cbd9fc10 Mon Sep 17 00:00:00 2001 From: "sergey.kitov" Date: Fri, 20 Oct 2023 11:40:49 +0300 Subject: [PATCH] login-common: change login_source_ips to BOOLLIST. --- src/login-common/login-settings.c | 5 +++-- src/login-common/login-settings.h | 2 +- src/login-common/main.c | 6 +++--- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/login-common/login-settings.c b/src/login-common/login-settings.c index 46bb210e06..4cedeb0e7b 100644 --- a/src/login-common/login-settings.c +++ b/src/login-common/login-settings.c @@ -3,6 +3,7 @@ #include "login-common.h" #include "settings-parser.h" #include "login-settings.h" +#include "settings-parser.h" #include @@ -14,7 +15,7 @@ static bool login_settings_check(void *_set, pool_t pool, const char **error_r); static const struct setting_define login_setting_defines[] = { DEF(BOOLLIST, login_trusted_networks), - DEF(STR, login_source_ips), + DEF(BOOLLIST, login_source_ips), DEF(STR_HIDDEN, login_greeting), DEF(STR_NOVARS, login_log_format_elements), DEF(STR_NOVARS, login_log_format), @@ -44,7 +45,7 @@ static const struct setting_define login_setting_defines[] = { static const struct login_settings login_default_settings = { .login_trusted_networks = ARRAY_INIT, - .login_source_ips = "", + .login_source_ips = ARRAY_INIT, .login_greeting = PACKAGE_NAME" ready.", .login_log_format_elements = "user=<%u> method=%m rip=%r lip=%l mpid=%e %c session=<%{session}>", .login_log_format = "%$: %s", diff --git a/src/login-common/login-settings.h b/src/login-common/login-settings.h index 9c043a8930..9ccb7b973d 100644 --- a/src/login-common/login-settings.h +++ b/src/login-common/login-settings.h @@ -4,7 +4,7 @@ struct login_settings { pool_t pool; ARRAY_TYPE(const_string) login_trusted_networks; - const char *login_source_ips; + ARRAY_TYPE(const_string) login_source_ips; const char *login_greeting; const char *login_log_format_elements, *login_log_format; const char *login_access_sockets; diff --git a/src/login-common/main.c b/src/login-common/main.c index c2d558c4df..0138d2121e 100644 --- a/src/login-common/main.c +++ b/src/login-common/main.c @@ -275,7 +275,7 @@ void login_anvil_init(void) } static void -parse_login_source_ips(const char *ips_str) +parse_login_source_ips(const ARRAY_TYPE(const_string) *ips_str) { const char *const *tmp; struct ip_addr *tmp_ips; @@ -285,7 +285,7 @@ parse_login_source_ips(const char *ips_str) i_array_init(&login_source_v4_ips_array, 4); i_array_init(&login_source_v6_ips_array, 4); - for (tmp = t_strsplit_spaces(ips_str, ", "); *tmp != NULL; tmp++) { + for (tmp = settings_boollist_get(ips_str); *tmp != NULL; tmp++) { ret = net_gethostbyname(*tmp, &tmp_ips, &tmp_ips_count); if (ret != 0) { i_error("login_source_ips: net_gethostbyname(%s) failed: %s", @@ -383,7 +383,7 @@ static void main_preinit(void) /* read the login_source_ips before chrooting so it can access /etc/hosts */ - parse_login_source_ips(global_login_settings->login_source_ips); + parse_login_source_ips(&global_login_settings->login_source_ips); if (login_source_v4_ips_count > 0) { /* randomize the initial index in case restart_service_count=1 (although in that case it's unlikely this setting is -- 2.47.3