From: Timo Sirainen Date: Sat, 8 Mar 2025 08:22:46 +0000 (+0200) Subject: lib-storage: Default namespace init: Lookup mail_driver with a settings lookup X-Git-Tag: 2.4.1~21 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=46fe0cd49df83c86026bae9ba3cdc6b8208af007;p=thirdparty%2Fdovecot%2Fcore.git lib-storage: Default namespace init: Lookup mail_driver with a settings lookup This allows removal of mail_user_set_get_storage_set() --- diff --git a/src/lib-storage/mail-namespace.c b/src/lib-storage/mail-namespace.c index 6a8f1c0335..e4b73d566b 100644 --- a/src/lib-storage/mail-namespace.c +++ b/src/lib-storage/mail-namespace.c @@ -555,15 +555,18 @@ static int mail_namespaces_init_default_location(struct mail_user *user, const char **error_r) { - const struct mail_storage_settings *mail_set; + const struct mail_driver_settings *set; const char *driver = "", *mail_path = "", *location_source, *error; bool autodetect = FALSE; + if (settings_get(user->event, &mail_driver_setting_parser_info, 0, + &set, error_r) < 0) + return -1; + struct event *set_event = event_create(user->event); - mail_set = mail_user_set_get_storage_set(user); - if (*mail_set->mail_driver != '\0') { + if (*set->mail_driver != '\0') { location_source = t_strdup_printf("mail_driver=%s setting", - mail_set->mail_driver); + set->mail_driver); } else if ((mail_path = getenv("MAIL")) != NULL) { location_source = t_strdup_printf("environment MAIL=%s", mail_path); @@ -578,6 +581,7 @@ mail_namespaces_init_default_location(struct mail_user *user, } int ret = mail_namespaces_init_location_full(user, set_event, driver, mail_path, &error); + settings_free(set); event_unref(&set_event); if (ret == 0)