diff --git a/src/plugins/lda-sieve/lda-sieve-plugin.c b/src/plugins/lda-sieve/lda-sieve-plugin.c index 564dd09e197f264a78458c78c3d7c7f09959a587..a64956a27db92fa0a11b6d3258814a0fb35030b1 100644 --- a/src/plugins/lda-sieve/lda-sieve-plugin.c +++ b/src/plugins/lda-sieve/lda-sieve-plugin.c @@ -70,7 +70,7 @@ static void *lda_sieve_smtp_open(const char *destination, static bool lda_sieve_smtp_close(void *handle) { struct smtp_client *smtp_client = (struct smtp_client *) handle; - + return ( smtp_client_close(smtp_client) >= 0 ); } @@ -82,10 +82,10 @@ static int lda_sieve_run struct sieve_message_data msgdata; struct sieve_mail_environment mailenv; struct sieve_binary *sbin; - + if ( debug ) i_info("lda-sieve: Compiling script %s", script_path); - + if ( (sbin=sieve_compile(script_path)) == NULL ) return -1; @@ -96,7 +96,7 @@ static int lda_sieve_run msgdata.to_address = destaddr; msgdata.auth_user = username; (void)mail_get_first_header(mail, "Message-ID", &msgdata.id); - + memset(&mailenv, 0, sizeof(mailenv)); mailenv.inbox = mailbox; mailenv.namespaces = namespaces; @@ -110,10 +110,10 @@ static int lda_sieve_run if ( debug ) i_info("lda-sieve: Executing (in-memory) script %s", script_path); - + if ( sieve_execute(sbin, &msgdata, &mailenv) ) return 1; - + return -1; } @@ -136,6 +136,8 @@ static int lda_sieve_deliver_mail void sieve_plugin_init(void) { + sieve_init(""); + next_deliver_mail = deliver_mail; deliver_mail = lda_sieve_deliver_mail; } @@ -143,4 +145,6 @@ void sieve_plugin_init(void) void sieve_plugin_deinit(void) { deliver_mail = next_deliver_mail; + + sieve_deinit(); }