diff --git a/src/lib-sieve-tool/sieve-tool.c b/src/lib-sieve-tool/sieve-tool.c index c2320f0e40b0671d36c8988c31dd1b598e32ddd2..99662174c26e0441cf87cc8477a3202ef0d7bcce 100644 --- a/src/lib-sieve-tool/sieve-tool.c +++ b/src/lib-sieve-tool/sieve-tool.c @@ -138,6 +138,7 @@ sieve_tool_init(const char *name, int *argc, char **argv[], MASTER_SERVICE_FLAG_STANDALONE | MASTER_SERVICE_FLAG_DONT_SEND_STATS | MASTER_SERVICE_FLAG_NO_INIT_DATASTACK_FRAME; + const char *error; if (no_config) service_flags |= MASTER_SERVICE_FLAG_NO_CONFIG_SETTINGS; @@ -151,6 +152,8 @@ sieve_tool_init(const char *name, int *argc, char **argv[], i_array_init(&tool->sieve_plugins, 16); + if (master_service_settings_read_simple(master_service, &error) < 0) + i_fatal("%s", error); return tool; } @@ -221,8 +224,7 @@ sieve_tool_init_finish(struct sieve_tool *tool, bool init_mailstore, { enum mail_storage_service_flags storage_service_flags = MAIL_STORAGE_SERVICE_FLAG_NO_CHDIR | - MAIL_STORAGE_SERVICE_FLAG_NO_LOG_INIT | - MAIL_STORAGE_SERVICE_FLAG_USE_SYSEXITS; + MAIL_STORAGE_SERVICE_FLAG_NO_LOG_INIT; struct mail_storage_service_input service_input; struct sieve_environment svenv; const char *username = tool->username; diff --git a/src/lib-sieve/util/test-edit-mail.c b/src/lib-sieve/util/test-edit-mail.c index 4051d664a399dce5d1f961a344541a5b11958ed3..e29bb85fb82cbc57dc68633ca7c59a43230d7ac9 100644 --- a/src/lib-sieve/util/test-edit-mail.c +++ b/src/lib-sieve/util/test-edit-mail.c @@ -10,6 +10,7 @@ #include "istream-crlf.h" #include "unlink-directory.h" #include "master-service.h" +#include "master-service-settings.h" #include "istream-header-filter.h" #include "mail-storage.h" #include "mail-storage-service.h" @@ -882,6 +883,8 @@ int main(int argc, char *argv[]) master_service = master_service_init("test-edit-header", service_flags, &argc, &argv, ""); + if (master_service_settings_read_simple(master_service, &error) < 0) + i_fatal("%s", error); master_service_init_finish(master_service); if (t_get_working_dir(&cwd, &error) < 0) diff --git a/src/managesieve/main.c b/src/managesieve/main.c index 7c280b5f33626b2a56a2387ff1b1801c9ca16712..57fbca947cd3614b5c05bdb994a1908e1672e8ec 100644 --- a/src/managesieve/main.c +++ b/src/managesieve/main.c @@ -349,6 +349,9 @@ int main(int argc, char *argv[]) /* plugins may want to add commands, so this needs to be called early */ commands_init(); + if (master_service_settings_read_simple(master_service, &error) < 0) + i_fatal("%s", error); + /* Dump capabilities if requested */ if (getenv("DUMP_CAPABILITY") != NULL) { i_set_debug_file("/dev/null"); diff --git a/src/managesieve/managesieve-capabilities.c b/src/managesieve/managesieve-capabilities.c index 24042af95fc931e1e1027b108c1486a16823c359..4388b4efd9f5d1322d5cf433795ab746ba05c05d 100644 --- a/src/managesieve/managesieve-capabilities.c +++ b/src/managesieve/managesieve-capabilities.c @@ -22,17 +22,6 @@ */ -static const struct plugin_settings *plugin_settings_read(void) -{ - const char *error; - - if (master_service_settings_read_simple(master_service, &error) < 0) - i_fatal("Error reading configuration: %s", error); - - return master_service_settings_get_or_fatal(NULL, - &managesieve_plugin_setting_parser_info); -} - static const char * plugin_settings_get(const struct plugin_settings *set, const char *identifier) { @@ -79,7 +68,8 @@ void managesieve_capabilities_dump(void) /* Read plugin settings */ - global_plugin_settings = plugin_settings_read(); + global_plugin_settings = master_service_settings_get_or_fatal(NULL, + &managesieve_plugin_setting_parser_info); /* Initialize Sieve engine */