Mercurial > dovecot > original-hg > dovecot-1.2
changeset 5539:7d828d1b39ab HEAD
Added mailbox_list to struct mail_namespace. Added a few functions to get
private data out of mailbox_list.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Wed, 11 Apr 2007 13:55:34 +0300 |
parents | b3dd56440595 |
children | 1216c0ebe492 |
files | src/lib-storage/index/cydir/cydir-storage.c src/lib-storage/index/dbox/dbox-storage.c src/lib-storage/index/maildir/maildir-storage.c src/lib-storage/index/mbox/mbox-storage.c src/lib-storage/mail-namespace.c src/lib-storage/mail-namespace.h src/lib-storage/mailbox-list-private.h src/lib-storage/mailbox-list.c src/lib-storage/mailbox-list.h |
diffstat | 9 files changed, 25 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-storage/index/cydir/cydir-storage.c Wed Apr 11 13:32:02 2007 +0300 +++ b/src/lib-storage/index/cydir/cydir-storage.c Wed Apr 11 13:55:34 2007 +0300 @@ -124,7 +124,7 @@ } } - if (mailbox_list_init("fs", &list_set, + if (mailbox_list_init(_storage->ns, "fs", &list_set, mail_storage_get_list_flags(_storage->flags), &_storage->list, &error) < 0) { i_error("cydir fs: %s", error);
--- a/src/lib-storage/index/dbox/dbox-storage.c Wed Apr 11 13:32:02 2007 +0300 +++ b/src/lib-storage/index/dbox/dbox-storage.c Wed Apr 11 13:55:34 2007 +0300 @@ -205,7 +205,7 @@ } } - if (mailbox_list_init("fs", &list_set, + if (mailbox_list_init(_storage->ns, "fs", &list_set, mail_storage_get_list_flags(_storage->flags), &list, &error) < 0) { i_error("dbox fs: %s", error);
--- a/src/lib-storage/index/maildir/maildir-storage.c Wed Apr 11 13:32:02 2007 +0300 +++ b/src/lib-storage/index/maildir/maildir-storage.c Wed Apr 11 13:55:34 2007 +0300 @@ -250,7 +250,7 @@ } } - if (mailbox_list_init(layout, &list_set, + if (mailbox_list_init(_storage->ns, layout, &list_set, mail_storage_get_list_flags(flags), &list, &error) < 0) { i_error("maildir %s: %s", layout, error);
--- a/src/lib-storage/index/mbox/mbox-storage.c Wed Apr 11 13:32:02 2007 +0300 +++ b/src/lib-storage/index/mbox/mbox-storage.c Wed Apr 11 13:55:34 2007 +0300 @@ -425,7 +425,7 @@ list_set.mail_storage_flags = &_storage->flags; list_set.lock_method = &_storage->lock_method; - if (mailbox_list_init(layout, &list_set, + if (mailbox_list_init(_storage->ns, layout, &list_set, mail_storage_get_list_flags(_storage->flags), &_storage->list, &error) < 0) { i_error("mbox %s: %s", layout, error);
--- a/src/lib-storage/mail-namespace.c Wed Apr 11 13:32:02 2007 +0300 +++ b/src/lib-storage/mail-namespace.c Wed Apr 11 13:55:34 2007 +0300 @@ -9,8 +9,9 @@ static void namespace_init_storage(struct mail_namespace *ns) { + ns->list = mail_storage_get_list(ns->storage); ns->prefix_len = strlen(ns->prefix); - ns->real_sep = mail_storage_get_hierarchy_sep(ns->storage); + ns->real_sep = mailbox_list_get_hierarchy_sep(ns->list); if (ns->sep == '\0') ns->sep = ns->real_sep;
--- a/src/lib-storage/mail-namespace.h Wed Apr 11 13:32:02 2007 +0300 +++ b/src/lib-storage/mail-namespace.h Wed Apr 11 13:55:34 2007 +0300 @@ -17,6 +17,8 @@ size_t prefix_len; bool inbox, hidden, subscriptions; + struct mailbox_list *list; + /* FIXME: we should support multiple storages in one namespace */ struct mail_storage *storage; };
--- a/src/lib-storage/mailbox-list-private.h Wed Apr 11 13:32:02 2007 +0300 +++ b/src/lib-storage/mailbox-list-private.h Wed Apr 11 13:55:34 2007 +0300 @@ -69,6 +69,7 @@ /* private: */ pool_t pool; + struct mail_namespace *ns; struct mailbox_list_settings set; enum mailbox_list_flags flags;
--- a/src/lib-storage/mailbox-list.c Wed Apr 11 13:32:02 2007 +0300 +++ b/src/lib-storage/mailbox-list.c Wed Apr 11 13:55:34 2007 +0300 @@ -74,7 +74,7 @@ array_free(&mailbox_list_drivers); } -int mailbox_list_init(const char *driver, +int mailbox_list_init(struct mail_namespace *ns, const char *driver, const struct mailbox_list_settings *set, enum mailbox_list_flags flags, struct mailbox_list **list_r, const char **error_r) @@ -95,6 +95,7 @@ class_p = array_idx(&mailbox_list_drivers, idx); list = (*class_p)->v.alloc(); + list->ns = ns; list->flags = flags; /* copy settings */ @@ -164,6 +165,16 @@ return list->hierarchy_sep; } +enum mailbox_list_flags mailbox_list_get_flags(struct mailbox_list *list) +{ + return list->flags; +} + +struct mail_namespace *mailbox_list_get_namespace(struct mailbox_list *list) +{ + return list->ns; +} + bool mailbox_list_is_valid_mask(struct mailbox_list *list, const char *mask) { return list->v.is_valid_mask(list, mask);
--- a/src/lib-storage/mailbox-list.h Wed Apr 11 13:32:02 2007 +0300 +++ b/src/lib-storage/mailbox-list.h Wed Apr 11 13:55:34 2007 +0300 @@ -1,6 +1,7 @@ #ifndef __MAILBOX_LIST_H #define __MAILBOX_LIST_H +struct mail_namespace; struct mailbox_list; struct mailbox_list_iterate_context; @@ -99,7 +100,7 @@ void mailbox_list_unregister(const struct mailbox_list *list); /* Returns 0 if ok, -1 if initialization failed. */ -int mailbox_list_init(const char *driver, +int mailbox_list_init(struct mail_namespace *ns, const char *driver, const struct mailbox_list_settings *set, enum mailbox_list_flags flags, struct mailbox_list **list_r, const char **error_r); @@ -107,6 +108,8 @@ const char *mailbox_list_get_driver_name(struct mailbox_list *list); char mailbox_list_get_hierarchy_sep(struct mailbox_list *list); +enum mailbox_list_flags mailbox_list_get_flags(struct mailbox_list *list); +struct mail_namespace *mailbox_list_get_namespace(struct mailbox_list *list); /* Returns TRUE if the name doesn't contain any invalid characters. The create name check can be more strict. */