diff --git a/src/lib-sieve-tool/sieve-tool.c b/src/lib-sieve-tool/sieve-tool.c index 19f78e6de5abea5556b93cdd9ac83303e838125f..46cfc830c4dec96848c25c75cf8afeef3aed17ec 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 ee0f78521050a24b5a839f7072c8da261bdad351..fe2f0ea5adc1bf54e80aec8eba51be6f30970c61 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 33f2f27a5004ab4c0bfc4f1d121883d59836a39c..2f645f36050ac1e7a10a3d5646a6aa5429be008b 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 f3ae31f9699b503642ef6de6a59e9be894c950e7..d26e6fbaf7514a2c7162c0262354ba8ce6ce3dfe 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 13b1f5fb45cc7830c41e467b5a70e9a3b246c55d..4186cef0261bcfd39b3e57d14d9a8c29f5f75ae1 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;