diff src/lib-storage/mailbox-list.c @ 4848:967de900c73a HEAD

Mailbox list indexing and related changes. Currently works only with maildir and mmap_disable=no. This allows doing STATUS to synced mailboxes without opening their index files at all.
author Timo Sirainen <tss@iki.fi>
date Sun, 26 Nov 2006 00:17:39 +0200
parents 2fb76f235a43
children f1d77064884c
line wrap: on
line diff
--- a/src/lib-storage/mailbox-list.c	Sun Nov 26 00:12:11 2006 +0200
+++ b/src/lib-storage/mailbox-list.c	Sun Nov 26 00:17:39 2006 +0200
@@ -111,6 +111,9 @@
 		p_strdup(list->pool, set->subscription_fname);
 	list->set.maildir_name = p_strdup(list->pool, set->maildir_name);
 
+	list->set.mail_storage_flags = set->mail_storage_flags;
+	list->set.mail_storage_lock_method = set->mail_storage_lock_method;
+
 	if ((flags & MAILBOX_LIST_FLAG_DEBUG) != 0) {
 		i_info("%s: root=%s, index=%s, control=%s, inbox=%s",
 		       driver, list->set.root_dir,
@@ -126,6 +129,9 @@
 	if (hook_mailbox_list_created != NULL)
 		hook_mailbox_list_created(list);
 
+	list->set.mail_storage_flags = NULL;
+	list->set.mail_storage_lock_method = NULL;
+
 	*list_r = list;
 	return 0;
 }
@@ -175,6 +181,12 @@
 	return list->v.get_temp_prefix(list);
 }
 
+const char *mailbox_list_join_refmask(struct mailbox_list *list,
+				      const char *ref, const char *mask)
+{
+	return list->v.join_refmask(list, ref, mask);
+}
+
 int mailbox_list_get_mailbox_name_status(struct mailbox_list *list,
 					 const char *name,
 					 enum mailbox_name_status *status)
@@ -183,11 +195,10 @@
 }
 
 struct mailbox_list_iterate_context *
-mailbox_list_iter_init(struct mailbox_list *list,
-		       const char *ref, const char *mask,
+mailbox_list_iter_init(struct mailbox_list *list, const char *mask,
 		       enum mailbox_list_iter_flags flags)
 {
-	return list->v.iter_init(list, ref, mask, flags);
+	return list->v.iter_init(list, mask, flags);
 }
 
 struct mailbox_info *
@@ -284,7 +295,7 @@
 	list->temporary_error = FALSE;
 }
 
-static void mailbox_list_set_internal_error(struct mailbox_list *list)
+void mailbox_list_set_internal_error(struct mailbox_list *list)
 {
 	struct tm *tm;
 	char str[256];