Mercurial > dovecot > core-2.2
diff src/lda/main.c @ 11822:7a6cf8dae9bf
Added mail_temp_dir setting, used by deliver and lmtp for creating temp mail files.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Thu, 15 Jul 2010 13:42:33 +0100 |
parents | f93507788bc3 |
children | 69a3dfe6dba3 |
line wrap: on
line diff
--- a/src/lda/main.c Wed Jul 14 17:16:55 2010 +0100 +++ b/src/lda/main.c Thu Jul 15 13:42:33 2010 +0100 @@ -85,51 +85,15 @@ return ret; } -static int deliver_create_dir(struct mail_user *user, const char *dir) -{ - struct mail_namespace *ns; - const char *origin; - mode_t mode; - gid_t gid; - - ns = mail_namespace_find_inbox(user->namespaces); - if (ns == NULL) - ns = user->namespaces; - - mailbox_list_get_dir_permissions(ns->list, NULL, &mode, &gid, &origin); - if (mkdir_parents_chgrp(dir, mode, gid, origin) == 0) { - return 0; - } else if (errno == EACCES) { - i_error("%s", eacces_error_get_creating("mkdir_parents_chown", - dir)); - return -1; - } else { - i_error("mkdir_parents_chown(%s, gid=%s) failed: %m", - dir, dec2str(gid)); - return -1; - } -} - static int seekable_fd_callback(const char **path_r, void *context) { struct mail_deliver_context *ctx = context; - const char *dir, *p; string_t *path; int fd; path = t_str_new(128); - str_append(path, mail_user_get_temp_prefix(ctx->dest_user)); + mail_user_set_get_temp_prefix(path, ctx->dest_user->set); fd = safe_mkstemp(path, 0600, (uid_t)-1, (gid_t)-1); - if (fd == -1 && errno == ENOENT) { - dir = str_c(path); - p = strrchr(dir, '/'); - if (p != NULL) { - dir = t_strdup_until(dir, p); - if (deliver_create_dir(ctx->dest_user, dir) < 0) - return -1; - fd = safe_mkstemp(path, 0600, (uid_t)-1, (gid_t)-1); - } - } if (fd == -1) { i_error("safe_mkstemp(%s) failed: %m", str_c(path)); return -1;