From 9c6afd6ba28eb0f0f8a2976cb0f822499eb7d266 Mon Sep 17 00:00:00 2001 From: Stephan Bosch <stephan@rename-it.nl> Date: Thu, 14 Aug 2008 01:35:12 +0200 Subject: [PATCH] Compile fix for changes in Dovecot. --- src/sieve-bin/mail-raw.c | 15 +++++++++------ src/sieve-bin/mail-raw.h | 2 +- src/sieve-bin/namespaces.c | 9 +-------- src/sieve-bin/namespaces.h | 2 +- src/sieve-bin/sieve-exec.c | 22 ++++++++++++++-------- src/sieve-bin/sieve-test.c | 5 ++--- src/testsuite/mail-raw.c | 13 ++++++++----- src/testsuite/mail-raw.h | 2 +- src/testsuite/namespaces.c | 9 +-------- src/testsuite/namespaces.h | 2 +- src/testsuite/testsuite-common.c | 4 ++-- src/testsuite/testsuite-common.h | 2 +- src/testsuite/testsuite.c | 5 ++--- 13 files changed, 44 insertions(+), 48 deletions(-) diff --git a/src/sieve-bin/mail-raw.c b/src/sieve-bin/mail-raw.c index 19b400f2f..693ad63c7 100644 --- a/src/sieve-bin/mail-raw.c +++ b/src/sieve-bin/mail-raw.c @@ -78,14 +78,17 @@ static struct istream *create_raw_stream(int fd) static struct mail_namespace *raw_ns; -void mail_raw_init(pool_t namespaces_pool, const char *user) +void mail_raw_init(const char *user) { const char *error; - - raw_ns = mail_namespaces_init_empty(namespaces_pool); - raw_ns->flags |= NAMESPACE_FLAG_INTERNAL; - if (mail_storage_create(raw_ns, "raw", "/tmp", user, - 0, FILE_LOCK_METHOD_FCNTL, &error) < 0) + struct mail_user *raw_mail_user; + + raw_mail_user = mail_user_init(user, NULL); + raw_ns = mail_namespaces_init_empty(raw_mail_user); + raw_ns->flags |= NAMESPACE_FLAG_INTERNAL; + if (mail_storage_create(raw_ns, "raw", "/tmp", + MAIL_STORAGE_FLAG_FULL_FS_ACCESS, + FILE_LOCK_METHOD_FCNTL, &error) < 0) i_fatal("Couldn't create internal raw storage: %s", error); } diff --git a/src/sieve-bin/mail-raw.h b/src/sieve-bin/mail-raw.h index f54372e8e..47e149f8f 100644 --- a/src/sieve-bin/mail-raw.h +++ b/src/sieve-bin/mail-raw.h @@ -10,7 +10,7 @@ struct mail_raw { struct mailbox_transaction_context *trans; }; -void mail_raw_init(pool_t namespaces_pool, const char *user); +void mail_raw_init(const char *user); struct mail_raw *mail_raw_open(int fd); void mail_raw_close(struct mail_raw *mailr); void mail_raw_deinit(void); diff --git a/src/sieve-bin/namespaces.c b/src/sieve-bin/namespaces.c index cc1378953..f032b3e85 100644 --- a/src/sieve-bin/namespaces.c +++ b/src/sieve-bin/namespaces.c @@ -43,22 +43,15 @@ mailbox_list_register(&fs_mailbox_list); index_mailbox_list_init(); } -static pool_t namespaces_pool; - -pool_t namespaces_init(void) +void namespaces_init(void) { mail_storage_init(); mail_storage_register_all(); mailbox_list_register_all(); - - namespaces_pool = pool_alloconly_create("namespaces", 1024); - - return namespaces_pool; } void namespaces_deinit(void) { mail_storage_deinit(); - pool_unref(&namespaces_pool); } diff --git a/src/sieve-bin/namespaces.h b/src/sieve-bin/namespaces.h index 5f542d3f6..81e9fc030 100644 --- a/src/sieve-bin/namespaces.h +++ b/src/sieve-bin/namespaces.h @@ -1,7 +1,7 @@ #ifndef __NAMESPACES_H #define __NAMESPACES_H -pool_t namespaces_init(void); +void namespaces_init(void); void namespaces_deinit(void); #endif /* __MAIL_RAW_H */ diff --git a/src/sieve-bin/sieve-exec.c b/src/sieve-bin/sieve-exec.c index 3eebaa6c0..aad34b088 100644 --- a/src/sieve-bin/sieve-exec.c +++ b/src/sieve-bin/sieve-exec.c @@ -68,11 +68,10 @@ int main(int argc, char **argv) { const char *scriptfile, *recipient, *sender, *mailbox, *dumpfile, *mailfile; const char *mailloc; - const char *user; + const char *user, *home; int i, mfd; - pool_t namespaces_pool; - struct mail_namespace *ns; struct mail_raw *mailr; + struct mail_namespace *ns; struct sieve_binary *sbin; struct sieve_message_data msgdata; struct sieve_script_env scriptenv; @@ -144,22 +143,29 @@ int main(int argc, char **argv) bin_dump_sieve_binary_to(sbin, dumpfile); user = bin_get_user(); - namespaces_pool = namespaces_init(); + home = getenv("HOME"); + + namespaces_init(); if ( mailloc != NULL ) { + struct mail_user *mail_user; + env_put(t_strdup_printf("NAMESPACE_1=%s", mailloc)); env_put("NAMESPACE_1_INBOX=1"); env_put("NAMESPACE_1_LIST=1"); env_put("NAMESPACE_1_SEP=."); env_put("NAMESPACE_1_SUBSCRIPTIONS=1"); - - if (mail_namespaces_init(namespaces_pool, user, &ns) < 0) - i_fatal("Namespace initialization failed"); + + mail_user = mail_user_init(user, home); + if (mail_namespaces_init(mail_user) < 0) + i_fatal("Namespace initialization failed"); + + ns = mail_user->namespaces; } else { ns = NULL; } - mail_raw_init(namespaces_pool, user); + mail_raw_init(user); mailr = mail_raw_open(mfd); bin_fill_in_envelope(mailr->mail, &recipient, &sender); diff --git a/src/sieve-bin/sieve-test.c b/src/sieve-bin/sieve-test.c index 2c361149b..7af2d36bd 100644 --- a/src/sieve-bin/sieve-test.c +++ b/src/sieve-bin/sieve-test.c @@ -38,7 +38,6 @@ int main(int argc, char **argv) const char *scriptfile, *recipient, *sender, *mailbox, *dumpfile, *mailfile; const char *user; int i, mfd; - pool_t namespaces_pool; struct mail_raw *mailr; struct sieve_binary *sbin; struct sieve_message_data msgdata; @@ -123,8 +122,8 @@ int main(int argc, char **argv) user = bin_get_user(); - namespaces_pool = namespaces_init(); - mail_raw_init(namespaces_pool, user); + namespaces_init(); + mail_raw_init(user); mailr = mail_raw_open(mfd); bin_fill_in_envelope(mailr->mail, &recipient, &sender); diff --git a/src/testsuite/mail-raw.c b/src/testsuite/mail-raw.c index 8b805d5f1..50c1689c7 100644 --- a/src/testsuite/mail-raw.c +++ b/src/testsuite/mail-raw.c @@ -35,15 +35,18 @@ static struct mail_namespace *raw_ns; -void mail_raw_init(pool_t namespaces_pool, const char *user) +void mail_raw_init(const char *user) { const char *error; + struct mail_user *raw_mail_user; - raw_ns = mail_namespaces_init_empty(namespaces_pool); + raw_mail_user = mail_user_init(user, NULL); + raw_ns = mail_namespaces_init_empty(raw_mail_user); raw_ns->flags |= NAMESPACE_FLAG_INTERNAL; - if (mail_storage_create(raw_ns, "raw", "/tmp", user, - 0, FILE_LOCK_METHOD_FCNTL, &error) < 0) - i_fatal("Couldn't create internal raw storage: %s", error); + if (mail_storage_create(raw_ns, "raw", "/tmp", + MAIL_STORAGE_FLAG_FULL_FS_ACCESS, + FILE_LOCK_METHOD_FCNTL, &error) < 0) + i_fatal("Couldn't create internal raw storage: %s", error); } struct mail_raw *mail_raw_open(string_t *mail_data) diff --git a/src/testsuite/mail-raw.h b/src/testsuite/mail-raw.h index 789b133e3..73ed48b91 100644 --- a/src/testsuite/mail-raw.h +++ b/src/testsuite/mail-raw.h @@ -13,7 +13,7 @@ struct mail_raw { struct mailbox_transaction_context *trans; }; -void mail_raw_init(pool_t namespaces_pool, const char *user); +void mail_raw_init(const char *user); struct mail_raw *mail_raw_open(string_t *mail_data); void mail_raw_close(struct mail_raw *mailr); void mail_raw_deinit(void); diff --git a/src/testsuite/namespaces.c b/src/testsuite/namespaces.c index cc1378953..f032b3e85 100644 --- a/src/testsuite/namespaces.c +++ b/src/testsuite/namespaces.c @@ -43,22 +43,15 @@ mailbox_list_register(&fs_mailbox_list); index_mailbox_list_init(); } -static pool_t namespaces_pool; - -pool_t namespaces_init(void) +void namespaces_init(void) { mail_storage_init(); mail_storage_register_all(); mailbox_list_register_all(); - - namespaces_pool = pool_alloconly_create("namespaces", 1024); - - return namespaces_pool; } void namespaces_deinit(void) { mail_storage_deinit(); - pool_unref(&namespaces_pool); } diff --git a/src/testsuite/namespaces.h b/src/testsuite/namespaces.h index 5f542d3f6..81e9fc030 100644 --- a/src/testsuite/namespaces.h +++ b/src/testsuite/namespaces.h @@ -1,7 +1,7 @@ #ifndef __NAMESPACES_H #define __NAMESPACES_H -pool_t namespaces_init(void); +void namespaces_init(void); void namespaces_deinit(void); #endif /* __MAIL_RAW_H */ diff --git a/src/testsuite/testsuite-common.c b/src/testsuite/testsuite-common.c index bd1331944..d14cf8fad 100644 --- a/src/testsuite/testsuite-common.c +++ b/src/testsuite/testsuite-common.c @@ -100,7 +100,7 @@ static void _testsuite_message_set(string_t *message) (void)mail_get_first_header(mail, "Message-ID", &testsuite_msgdata.id); } -void testsuite_message_init(pool_t namespaces_pool, const char *user) +void testsuite_message_init(const char *user) { message_pool = pool_alloconly_create("testsuite_message", 6096); @@ -108,7 +108,7 @@ void testsuite_message_init(pool_t namespaces_pool, const char *user) str_append(default_message, _default_message_data); testsuite_user = user; - mail_raw_init(namespaces_pool, user); + mail_raw_init(user); _testsuite_message_set(default_message); envelope_to = str_new(message_pool, 256); diff --git a/src/testsuite/testsuite-common.h b/src/testsuite/testsuite-common.h index 8bf37ab47..c371e5c83 100644 --- a/src/testsuite/testsuite-common.h +++ b/src/testsuite/testsuite-common.h @@ -9,7 +9,7 @@ extern int ext_testsuite_my_id; extern struct sieve_message_data testsuite_msgdata; -void testsuite_message_init(pool_t namespaces_pool, const char *user); +void testsuite_message_init(const char *user); void testsuite_message_deinit(void); void testsuite_message_set diff --git a/src/testsuite/testsuite.c b/src/testsuite/testsuite.c index e21786f1e..20e055573 100644 --- a/src/testsuite/testsuite.c +++ b/src/testsuite/testsuite.c @@ -175,7 +175,6 @@ int main(int argc, char **argv) const char *scriptfile, *dumpfile; const char *user; int i, ret; - pool_t namespaces_pool; struct sieve_binary *sbin; const char *sieve_dir; struct sieve_script_env scriptenv; @@ -229,9 +228,9 @@ int main(int argc, char **argv) /* Dump script */ _dump_sieve_binary_to(sbin, dumpfile); - namespaces_pool = namespaces_init(); + namespaces_init(); user = _get_user(); - testsuite_message_init(namespaces_pool, user); + testsuite_message_init(user); memset(&scriptenv, 0, sizeof(scriptenv)); scriptenv.inbox = "INBOX"; -- GitLab