From 18085232daabb5d6750c28110ee3d36c41987448 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Mon, 13 Apr 2009 12:36:34 -0400 Subject: [PATCH] Fixed deliver -p. --HG-- branch : HEAD --- src/deliver/deliver.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/deliver/deliver.c b/src/deliver/deliver.c index b58580e975..8e066b270c 100644 --- a/src/deliver/deliver.c +++ b/src/deliver/deliver.c @@ -14,7 +14,9 @@ #include "rfc822-parser.h" #include "message-address.h" #include "imap-utf7.h" +#include "settings-parser.h" #include "master-service.h" +#include "master-service-settings.h" #include "mail-storage-service.h" #include "mail-namespace.h" #include "raw-storage.h" @@ -384,6 +386,7 @@ int main(int argc, char *argv[]) const char *mailbox = "INBOX"; const char *destaddr, *user, *errstr, *path, *getopt_str; struct mail_user *mail_user, *raw_mail_user; + struct mail_user_settings *raw_user_set; struct mail_namespace *raw_ns; struct mail_namespace_settings raw_ns_set; struct mail_storage *storage; @@ -394,6 +397,7 @@ int main(int argc, char *argv[]) struct mailbox_header_lookup_ctx *headers_ctx; struct mail *mail; char cwd[PATH_MAX]; + pool_t settings_pool; uid_t process_euid; bool stderr_rejection = FALSE; time_t mtime; @@ -527,7 +531,13 @@ int main(int argc, char *argv[]) duplicate_init(mail_user_set_get_storage_set(mail_user->set)); /* create a separate mail user for the internal namespace */ - raw_mail_user = mail_user_alloc(user, mail_user->unexpanded_set); + if (master_service_set(service, "mail_full_filesystem_access=yes") < 0) + i_unreached(); + + settings_pool = pool_alloconly_create("raw settings pool", 4096); + raw_user_set = settings_dup(&mail_user_setting_parser_info, + mail_user->unexpanded_set, settings_pool); + raw_mail_user = mail_user_alloc(user, raw_user_set); mail_user_set_home(raw_mail_user, "/"); if (mail_user_init(raw_mail_user, &errstr) < 0) i_fatal("Raw user initialization failed: %s", errstr); @@ -650,6 +660,7 @@ int main(int argc, char *argv[]) mail_user_unref(&mail_user); mail_user_unref(&raw_mail_user); duplicate_deinit(); + pool_unref(&settings_pool); mail_storage_service_deinit_user(); master_service_deinit(&service); -- 2.47.3