changeset 8787:5c3406520c3f HEAD

deliver: Use user's home dir or mail dir when creating temp files, instead of hardcoded /tmp.
author Timo Sirainen <tss@iki.fi>
date Thu, 26 Feb 2009 16:43:51 -0500
parents db9811ec1f47
children 1f2dfc6fbda9
files src/deliver/deliver.c
diffstat 1 files changed, 5 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/deliver/deliver.c	Thu Feb 26 16:43:21 2009 -0500
+++ b/src/deliver/deliver.c	Thu Feb 26 16:43:51 2009 -0500
@@ -606,7 +606,8 @@
 }
 
 
-static struct istream *create_raw_stream(int fd, time_t *mtime_r)
+static struct istream *
+create_raw_stream(const char *temp_path_prefix, int fd, time_t *mtime_r)
 {
 	struct istream *input, *input2, *input_list[2];
 	const unsigned char *data;
@@ -656,7 +657,7 @@
 
 	input_list[0] = input2; input_list[1] = NULL;
 	input = i_stream_create_seekable(input_list, MAIL_MAX_MEMORY_BUFFER,
-					 "/tmp/dovecot.deliver.");
+					 temp_path_prefix);
 	i_stream_unref(&input2);
 	return input;
 }
@@ -1114,7 +1115,8 @@
 				FILE_LOCK_METHOD_FCNTL, &errstr) < 0)
 		i_fatal("Couldn't create internal raw storage: %s", errstr);
 	if (path == NULL) {
-		input = create_raw_stream(0, &mtime);
+		const char *prefix = mail_user_get_temp_prefix(mail_user);
+		input = create_raw_stream(prefix, 0, &mtime);
 		box = mailbox_open(&raw_ns->storage, "Dovecot Delivery Mail",
 				   input, MAILBOX_OPEN_NO_INDEX_FILES);
 		i_stream_unref(&input);