From: Timo Sirainen Date: Thu, 5 Jan 2023 02:15:37 +0000 (+0200) Subject: pop3: Use master_service_settings_parser_get() X-Git-Tag: 2.4.0~2323 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=483f6f6705c1f683574361a9efb94d1ae79807a3;p=thirdparty%2Fdovecot%2Fcore.git pop3: Use master_service_settings_parser_get() --- diff --git a/src/pop3/main.c b/src/pop3/main.c index 1b31a07d12..ee538d30c1 100644 --- a/src/pop3/main.c +++ b/src/pop3/main.c @@ -13,6 +13,7 @@ #include "restrict-access.h" #include "settings-parser.h" #include "master-service.h" +#include "master-service-settings.h" #include "login-server.h" #include "master-interface.h" #include "master-admin-client.h" @@ -146,8 +147,17 @@ client_create_from_input(const struct mail_storage_service_input *input, } restrict_access_allow_coredumps(TRUE); - set = settings_parser_get_root_set(mail_user->set_parser, - &pop3_setting_parser_info); + if (master_service_settings_parser_get(mail_user->event, + mail_user->set_parser, &pop3_setting_parser_info, + MASTER_SERVICE_SETTINGS_GET_FLAG_NO_EXPAND, + &set, error_r) < 0) { + if (write(fd_out, lookup_error_str, strlen(lookup_error_str)) < 0) { + /* ignored */ + } + mail_user_deinit(&mail_user); + event_unref(&event); + return -1; + } if (set->verbose_proctitle) verbose_proctitle = TRUE; diff --git a/src/pop3/pop3-client.c b/src/pop3/pop3-client.c index 4ef2c4e151..cae9373310 100644 --- a/src/pop3/pop3-client.c +++ b/src/pop3/pop3-client.c @@ -16,6 +16,7 @@ #include "file-dotlock.h" #include "var-expand.h" #include "master-service.h" +#include "master-service-settings.h" #include "mail-storage.h" #include "mail-storage-service.h" #include "mail-autoexpunge.h" @@ -650,6 +651,7 @@ static void client_default_destroy(struct client *client, const char *reason) pop3_refresh_proctitle(); mail_user_autoexpunge(client->user); mail_user_deinit(&client->user); + master_service_settings_free(client->set); pop3_client_count--; DLLIST_REMOVE(&pop3_clients, client); diff --git a/src/pop3/pop3-settings.c b/src/pop3/pop3-settings.c index 9c8aa11513..03e70c77cc 100644 --- a/src/pop3/pop3-settings.c +++ b/src/pop3/pop3-settings.c @@ -120,6 +120,7 @@ const struct setting_parser_info pop3_setting_parser_info = { .defaults = &pop3_default_settings, .struct_size = sizeof(struct pop3_settings), + .pool_offset1 = 1 + offsetof(struct pop3_settings, pool), .check_func = pop3_settings_verify, .dependencies = pop3_setting_dependencies }; diff --git a/src/pop3/pop3-settings.h b/src/pop3/pop3-settings.h index cf50f980d5..91fe88bad6 100644 --- a/src/pop3/pop3-settings.h +++ b/src/pop3/pop3-settings.h @@ -15,6 +15,7 @@ enum pop3_delete_type { /* */ struct pop3_settings { + pool_t pool; bool verbose_proctitle; const char *rawlog_dir;