]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
submission: Use master_service_settings_parser_get()
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Thu, 5 Jan 2023 02:21:36 +0000 (04:21 +0200)
committerTimo Sirainen <timo.sirainen@open-xchange.com>
Mon, 20 Nov 2023 12:11:41 +0000 (14:11 +0200)
src/submission/main.c
src/submission/submission-client.c
src/submission/submission-settings.c
src/submission/submission-settings.h

index 704c2430fe9451c69744ae51bd8a3b2fc30fd48c..65b6e661403d2a0008b12d4380ab1aaaccb21fb7 100644 (file)
@@ -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;
 
index 5d151211b7ca890ea10e32eedf86815636a952de..e3e5db33100ffa30facef8b6d90b56c8fe8e1c52 100644 (file)
@@ -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);
 
index 8e312916a5ef220214d9e83c43565b63456688ef..4e23b6809b306813efc8fbd3604a6b9c553df1b5 100644 (file)
@@ -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
 };
index 90ee8afaebf65307c53e2d684dc0f94fa115fad7..1aea64ab45c61cf0d4b5b9498f7d6ac74b61acc9 100644 (file)
@@ -11,6 +11,7 @@ enum submission_client_workarounds {
 /* </settings checks> */
 
 struct submission_settings {
+       pool_t pool;
        bool verbose_proctitle;
        const char *rawlog_dir;