From d673f117dfc2ec50c979bdd70de14fb91e50e980 Mon Sep 17 00:00:00 2001
From: Stephan Bosch <stephan@rename-it.nl>
Date: Wed, 25 Dec 2013 21:36:55 +0100
Subject: [PATCH] lib-sieve: Added path to temporary directory to Sieve
 instance object.

---
 src/lib-sieve-tool/sieve-tool.c          | 1 +
 src/lib-sieve/sieve-common.h             | 1 +
 src/lib-sieve/sieve-types.h              | 1 +
 src/lib-sieve/sieve.c                    | 1 +
 src/plugins/lda-sieve/lda-sieve-plugin.c | 1 +
 5 files changed, 5 insertions(+)

diff --git a/src/lib-sieve-tool/sieve-tool.c b/src/lib-sieve-tool/sieve-tool.c
index 19f78e6de..46cfc830c 100644
--- a/src/lib-sieve-tool/sieve-tool.c
+++ b/src/lib-sieve-tool/sieve-tool.c
@@ -273,6 +273,7 @@ struct sieve_instance *sieve_tool_init_finish
 	(void)mail_user_get_home(tool->mail_user_dovecot, &svenv.home_dir);
 	svenv.hostname = my_hostdomain();
 	svenv.base_dir = tool->mail_user_dovecot->set->base_dir;
+	svenv.temp_dir = tool->mail_user_dovecot->set->mail_temp_dir;
 	svenv.location = SIEVE_ENV_LOCATION_MS;
 	svenv.delivery_phase = SIEVE_DELIVERY_PHASE_POST;
 
diff --git a/src/lib-sieve/sieve-common.h b/src/lib-sieve/sieve-common.h
index ee0f78521..fe2f0ea5a 100644
--- a/src/lib-sieve/sieve-common.h
+++ b/src/lib-sieve/sieve-common.h
@@ -159,6 +159,7 @@ struct sieve_instance {
 	const char *hostname;
 	const char *domainname;
 	const char *base_dir;
+	const char *temp_dir;
 
 	/* User environment */
 	const char *username;
diff --git a/src/lib-sieve/sieve-types.h b/src/lib-sieve/sieve-types.h
index 33f2f27a5..2f645f360 100644
--- a/src/lib-sieve/sieve-types.h
+++ b/src/lib-sieve/sieve-types.h
@@ -60,6 +60,7 @@ struct sieve_environment {
 	const char *base_dir;
 	const char *username;
 	const char *home_dir;
+	const char *temp_dir;
 
 	enum sieve_flag flags;
 	enum sieve_env_location location;
diff --git a/src/lib-sieve/sieve.c b/src/lib-sieve/sieve.c
index f3ae31f96..d26e6fbaf 100644
--- a/src/lib-sieve/sieve.c
+++ b/src/lib-sieve/sieve.c
@@ -62,6 +62,7 @@ struct sieve_instance *sieve_init
 	svinst->base_dir = p_strdup_empty(pool, env->base_dir);
 	svinst->username = p_strdup_empty(pool, env->username);
 	svinst->home_dir = p_strdup_empty(pool, env->home_dir);
+	svinst->temp_dir = p_strdup_empty(pool, env->temp_dir);
 	svinst->flags = env->flags;
 	svinst->env_location = env->location;
 	svinst->delivery_phase = env->delivery_phase;
diff --git a/src/plugins/lda-sieve/lda-sieve-plugin.c b/src/plugins/lda-sieve/lda-sieve-plugin.c
index 13b1f5fb4..4186cef02 100644
--- a/src/plugins/lda-sieve/lda-sieve-plugin.c
+++ b/src/plugins/lda-sieve/lda-sieve-plugin.c
@@ -911,6 +911,7 @@ static int lda_sieve_deliver_mail
 	svenv.home_dir = srctx.home_dir;
 	svenv.hostname = mdctx->set->hostname;
 	svenv.base_dir = mdctx->dest_user->set->base_dir;
+	svenv.temp_dir = mdctx->dest_user->set->mail_temp_dir;
 	svenv.flags = SIEVE_FLAG_HOME_RELATIVE;
 	svenv.location = SIEVE_ENV_LOCATION_MDA;
 	svenv.delivery_phase = SIEVE_DELIVERY_PHASE_DURING;
-- 
GitLab