diff --git a/src/lib-sieve/sieve-extensions.c b/src/lib-sieve/sieve-extensions.c index f9d7c0a19c3bececd2653f1909e366a76a4af1ff..5552ffcd97c911f7cbe23e99fe37ed215259a4ae 100644 --- a/src/lib-sieve/sieve-extensions.c +++ b/src/lib-sieve/sieve-extensions.c @@ -9,6 +9,7 @@ #include "sieve-common.h" #include "sieve-error.h" +#include "sieve-settings.h" #include "sieve-extensions.h" /* @@ -178,6 +179,7 @@ bool sieve_extensions_init(struct sieve_instance *svinst) unsigned int i; struct sieve_extension_registry *ext_reg = p_new(svinst->pool, struct sieve_extension_registry, 1); + const char *extensions; svinst->ext_reg = ext_reg; @@ -230,8 +232,13 @@ bool sieve_extensions_init(struct sieve_instance *svinst) } #endif + /* Use sieve_extensions if set */ + + if ( (extensions=sieve_setting_get(svinst, "sieve_extensions")) != NULL ) + sieve_extensions_set_string(svinst, extensions); + /* More extensions can be added through plugins */ - + return TRUE; } diff --git a/src/managesieve/managesieve-capabilities.c b/src/managesieve/managesieve-capabilities.c index 4da049d560119530322bf2c7393cb331d2a3b6c9..faa8c0d8394211ee4c3c393cef6db1d2caa030c4 100644 --- a/src/managesieve/managesieve-capabilities.c +++ b/src/managesieve/managesieve-capabilities.c @@ -132,11 +132,6 @@ void managesieve_capabilities_dump(void) svinst = sieve_init(&sieve_env, (void *) global_plugin_settings, FALSE); - extensions = plugin_settings_get(global_plugin_settings, "sieve_extensions"); - if ( extensions != NULL ) { - sieve_set_extensions(svinst, extensions); - } - /* Dump capabilities */ notify_cap = sieve_get_capabilities(svinst, "notify"); diff --git a/src/managesieve/managesieve-client.c b/src/managesieve/managesieve-client.c index d0fed85f53fe3b3aacb5e0919d93a7c1cc460142..c19b4da8825ae3a9957afcca154ba488c3f6a69a 100644 --- a/src/managesieve/managesieve-client.c +++ b/src/managesieve/managesieve-client.c @@ -111,7 +111,7 @@ struct client *client_create const struct managesieve_settings *set) { struct client *client; - const char *ident, *extensions; + const char *ident; struct sieve_instance *svinst; struct sieve_storage *storage; @@ -124,11 +124,6 @@ struct client *client_create svinst = sieve_init(&managesieve_sieve_env, (void *) user, set->mail_debug); - extensions = mail_user_plugin_getenv(user, "sieve_extensions"); - if ( extensions != NULL ) { - sieve_set_extensions(svinst, extensions); - } - /* Get Sieve storage */ storage = client_get_storage(svinst, user, set); diff --git a/src/plugins/lda-sieve/lda-sieve-plugin.c b/src/plugins/lda-sieve/lda-sieve-plugin.c index 35774e77f2e49eefbc7909a59cb5b1b059ab602e..7152ee5b81c5b775911901f126bb4b56d1282cf7 100644 --- a/src/plugins/lda-sieve/lda-sieve-plugin.c +++ b/src/plugins/lda-sieve/lda-sieve-plugin.c @@ -519,7 +519,6 @@ static int lda_sieve_run struct sieve_message_data msgdata; struct sieve_script_env scriptenv; struct sieve_exec_status estatus; - const char *extensions = NULL; bool debug = mdctx->dest_user->mail_debug; int ret = 0; @@ -528,12 +527,6 @@ static int lda_sieve_run /* Initialize Sieve engine */ svinst = sieve_init(&lda_sieve_env, mdctx->dest_user, debug); - extensions = mail_user_plugin_getenv - (mdctx->dest_user, "sieve_extensions"); - if ( extensions != NULL ) { - sieve_set_extensions(svinst, extensions); - } - /* Initialize */ memset(&srctx, 0, sizeof(srctx));