From 7964f4517e7bcb1545f0e885058af7446501d3e3 Mon Sep 17 00:00:00 2001 From: Stephan Bosch <stephan@rename-it.nl> Date: Fri, 21 Nov 2008 19:59:00 +0100 Subject: [PATCH] Adapted to changes in the mailbox_open() API. --- src/lib-sieve-tool/mail-raw.c | 11 ++++++----- src/lib-sieve-tool/sieve-tool.c | 10 +++++----- src/lib-sieve/sieve-actions.c | 21 ++++++++++----------- src/sieve-tools/sieve-exec.c | 13 ++++++++----- src/sieve-tools/sieve-test.c | 3 +++ src/testsuite/testsuite.c | 3 +++ 6 files changed, 35 insertions(+), 26 deletions(-) diff --git a/src/lib-sieve-tool/mail-raw.c b/src/lib-sieve-tool/mail-raw.c index f5117c97d..572161ade 100644 --- a/src/lib-sieve-tool/mail-raw.c +++ b/src/lib-sieve-tool/mail-raw.c @@ -113,7 +113,8 @@ void mail_raw_init(const char *user) { const char *error; - raw_mail_user = mail_user_init(user, NULL); + raw_mail_user = mail_user_init(user); + mail_user_set_home(raw_mail_user, NULL); raw_ns = mail_namespaces_init_empty(raw_mail_user); raw_ns->flags |= NAMESPACE_FLAG_INTERNAL; @@ -126,9 +127,9 @@ void mail_raw_init(const char *user) void mail_raw_deinit(void) { - mail_user_deinit(&raw_mail_user); + mail_user_unref(&raw_mail_user); } - + /* * Open raw mail data */ @@ -146,11 +147,11 @@ static struct mail_raw *mail_raw_create mailr->pool = pool; if ( mailfile == NULL ) { - mailr->box = mailbox_open(raw_ns->storage, "Dovecot Raw Mail", + mailr->box = mailbox_open(&raw_ns->storage, "Dovecot Raw Mail", input, MAILBOX_OPEN_NO_INDEX_FILES); } else { mtime = (time_t)-1; - mailr->box = mailbox_open(raw_ns->storage, mailfile, NULL, + mailr->box = mailbox_open(&raw_ns->storage, mailfile, NULL, MAILBOX_OPEN_NO_INDEX_FILES); } diff --git a/src/lib-sieve-tool/sieve-tool.c b/src/lib-sieve-tool/sieve-tool.c index b5f30766a..04d0ade3e 100644 --- a/src/lib-sieve-tool/sieve-tool.c +++ b/src/lib-sieve-tool/sieve-tool.c @@ -85,12 +85,12 @@ const char *sieve_tool_get_user(void) process_euid = geteuid(); if ((pw = getpwuid(process_euid)) != NULL) { - user = t_strdup(pw->pw_name); - } - } + user = t_strdup(pw->pw_name); + } - if ( user == NULL || *user == '\0' ) { - i_fatal("couldn't lookup our username (uid=%s)", dec2str(process_euid)); + if ( user == NULL || *user == '\0' ) { + i_fatal("couldn't lookup our username (uid=%s)", dec2str(process_euid)); + } } return user; diff --git a/src/lib-sieve/sieve-actions.c b/src/lib-sieve/sieve-actions.c index abcc9803c..517b4a49a 100644 --- a/src/lib-sieve/sieve-actions.c +++ b/src/lib-sieve/sieve-actions.c @@ -168,28 +168,30 @@ static void act_store_get_storage_error static struct mailbox *act_store_mailbox_open (const struct sieve_action_exec_env *aenv, struct mail_namespace *ns, const char *folder) { + struct mail_storage **storage = &(aenv->estatus->last_storage); enum mailbox_open_flags open_flags = MAILBOX_OPEN_FAST | MAILBOX_OPEN_KEEP_RECENT | MAILBOX_OPEN_SAVEONLY | MAILBOX_OPEN_POST_SESSION; struct mailbox *box; if (strcasecmp(folder, "INBOX") == 0) { - /* Deliveries to INBOX must always succeed, regardless of ACLs */ - open_flags |= MAILBOX_OPEN_IGNORE_ACLS; - } + /* Deliveries to INBOX must always succeed, regardless of ACLs */ + open_flags |= MAILBOX_OPEN_IGNORE_ACLS; + } + + *storage = ns->storage; - box = mailbox_open - (ns->storage, folder, NULL, open_flags); + box = mailbox_open(storage, folder, NULL, open_flags); if ( box == NULL && aenv->scriptenv->mailbox_autocreate ) { enum mail_error error; - (void)mail_storage_get_last_error(ns->storage, &error); + (void)mail_storage_get_last_error(*storage, &error); if ( error != MAIL_ERROR_NOTFOUND ) return NULL; /* Try creating it */ - if ( mail_storage_mailbox_create(ns->storage, folder, FALSE) < 0 ) + if ( mail_storage_mailbox_create(*storage, folder, FALSE) < 0 ) return NULL; if ( aenv->scriptenv->mailbox_autosubscribe ) { @@ -198,8 +200,7 @@ static struct mailbox *act_store_mailbox_open } /* Try opening again */ - box = mailbox_open - (ns->storage, folder, NULL, open_flags); + box = mailbox_open(storage, folder, NULL, open_flags); if (box == NULL) return NULL; @@ -233,8 +234,6 @@ static bool act_store_start if ( ns != NULL ) { box = act_store_mailbox_open(aenv, ns, ctx->folder); - - aenv->estatus->last_storage = ns->storage; } } diff --git a/src/sieve-tools/sieve-exec.c b/src/sieve-tools/sieve-exec.c index bf4ac5c33..cc6652476 100644 --- a/src/sieve-tools/sieve-exec.c +++ b/src/sieve-tools/sieve-exec.c @@ -3,8 +3,8 @@ #include "lib.h" #include "ostream.h" -#include "mail-storage.h" #include "mail-namespace.h" +#include "mail-storage.h" #include "env-util.h" #include "sieve.h" @@ -161,6 +161,7 @@ int main(int argc, char **argv) home = getenv("HOME"); /* Initialize mail storages */ + mail_users_init(getenv("AUTH_SOCKET_PATH"), getenv("DEBUG") != NULL); mail_storage_init(); mail_storage_register_all(); mailbox_list_register_all(); @@ -173,9 +174,10 @@ int main(int argc, char **argv) env_put("NAMESPACE_1_SEP=."); env_put("NAMESPACE_1_SUBSCRIPTIONS=1"); - mail_user = mail_user_init(user, home); - if (mail_namespaces_init(mail_user) < 0) - i_fatal("Namespace initialization failed"); + mail_user = mail_user_init(user); + mail_user_set_home(mail_user, home); + if (mail_namespaces_init(mail_user) < 0) + i_fatal("Namespace initialization failed"); ns = mail_user->namespaces; } @@ -238,10 +240,11 @@ int main(int argc, char **argv) /* De-initialize mail user object */ if ( mail_user != NULL ) - mail_user_deinit(&mail_user); + mail_user_unref(&mail_user); /* De-intialize mail storages */ mail_storage_deinit(); + mail_users_deinit(); sieve_tool_deinit(); diff --git a/src/sieve-tools/sieve-test.c b/src/sieve-tools/sieve-test.c index 41508a1f1..854942593 100644 --- a/src/sieve-tools/sieve-test.c +++ b/src/sieve-tools/sieve-test.c @@ -3,6 +3,7 @@ #include "lib.h" #include "ostream.h" +#include "mail-namespace.h" #include "mail-storage.h" #include "sieve.h" @@ -134,6 +135,7 @@ int main(int argc, char **argv) user = sieve_tool_get_user(); /* Initialize mail storages */ + mail_users_init(getenv("AUTH_SOCKET_PATH"), getenv("DEBUG") != NULL); mail_storage_init(); mail_storage_register_all(); mailbox_list_register_all(); @@ -188,6 +190,7 @@ int main(int argc, char **argv) /* De-initialize mail storages */ mail_storage_deinit(); + mail_users_deinit(); sieve_tool_deinit(); return 0; diff --git a/src/testsuite/testsuite.c b/src/testsuite/testsuite.c index 10c81f9ce..465bbe088 100644 --- a/src/testsuite/testsuite.c +++ b/src/testsuite/testsuite.c @@ -7,6 +7,7 @@ #include "ostream.h" #include "hostpid.h" #include "mail-storage.h" +#include "mail-namespace.h" #include "env-util.h" #include "sieve.h" @@ -164,6 +165,7 @@ int main(int argc, char **argv) sieve_tool_dump_binary_to(sbin, dumpfile); /* Initialize mail storages */ + mail_users_init(getenv("AUTH_SOCKET_PATH"), getenv("DEBUG") != NULL); mail_storage_init(); mail_storage_register_all(); mailbox_list_register_all(); @@ -200,6 +202,7 @@ int main(int argc, char **argv) /* De-initialize mail storages */ mail_storage_deinit(); + mail_users_deinit(); /* De-initialize testsuite */ testsuite_tool_deinit(); -- GitLab