From: Timo Sirainen Date: Thu, 5 Jan 2023 02:21:36 +0000 (+0200) Subject: submission: Use master_service_settings_parser_get() X-Git-Tag: 2.4.0~2322 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=012f7181ca4364a14beb4772be1c2bae065dff63;p=thirdparty%2Fdovecot%2Fcore.git submission: Use master_service_settings_parser_get() --- diff --git a/src/submission/main.c b/src/submission/main.c index 704c2430fe..65b6e66140 100644 --- a/src/submission/main.c +++ b/src/submission/main.c @@ -14,6 +14,7 @@ #include "fd-util.h" #include "settings-parser.h" #include "master-service.h" +#include "master-service-settings.h" #include "login-server.h" #include "master-service-settings.h" #include "master-interface.h" @@ -190,8 +191,16 @@ 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, - &submission_setting_parser_info); + if (master_service_settings_parser_get(mail_user->event, + mail_user->set_parser, &submission_setting_parser_info, + MASTER_SERVICE_SETTINGS_GET_FLAG_NO_EXPAND, + &set, error_r) < 0) { + send_error(fd_out, event, my_hostname, + "4.7.0", MAIL_ERRSTR_CRITICAL_MSG); + mail_user_deinit(&mail_user); + event_unref(&event); + return -1; + } if (set->verbose_proctitle) verbose_proctitle = TRUE; diff --git a/src/submission/submission-client.c b/src/submission/submission-client.c index 5d151211b7..e3e5db3310 100644 --- a/src/submission/submission-client.c +++ b/src/submission/submission-client.c @@ -331,6 +331,7 @@ client_default_destroy(struct client *client) client_state_reset(client); + master_service_settings_free(client->set); event_unref(&client->event); pool_unref(&client->pool); diff --git a/src/submission/submission-settings.c b/src/submission/submission-settings.c index 8e312916a5..4e23b6809b 100644 --- a/src/submission/submission-settings.c +++ b/src/submission/submission-settings.c @@ -162,6 +162,7 @@ const struct setting_parser_info submission_setting_parser_info = { .defaults = &submission_default_settings, .struct_size = sizeof(struct submission_settings), + .pool_offset1 = 1 + offsetof(struct submission_settings, pool), .check_func = submission_settings_verify, .dependencies = submission_setting_dependencies }; diff --git a/src/submission/submission-settings.h b/src/submission/submission-settings.h index 90ee8afaeb..1aea64ab45 100644 --- a/src/submission/submission-settings.h +++ b/src/submission/submission-settings.h @@ -11,6 +11,7 @@ enum submission_client_workarounds { /* */ struct submission_settings { + pool_t pool; bool verbose_proctitle; const char *rawlog_dir;