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