Mercurial > dovecot > core-2.2
changeset 13465:ff6272a52f0d
lib-storage: Added mail_namespace_find_unalias()
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Fri, 16 Sep 2011 12:39:19 +0300 |
parents | 61d3544f8fdf |
children | 7f7dc4c89d04 |
files | src/lib-storage/mail-namespace.c src/lib-storage/mail-namespace.h |
diffstat | 2 files changed, 23 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-storage/mail-namespace.c Thu Sep 15 23:39:33 2011 +0300 +++ b/src/lib-storage/mail-namespace.c Fri Sep 16 12:39:19 2011 +0300 @@ -581,6 +581,23 @@ } struct mail_namespace * +mail_namespace_find_unalias(struct mail_namespace *namespaces, + const char **mailbox) +{ + struct mail_namespace *ns; + const char *storage_name; + + ns = mail_namespace_find(namespaces, *mailbox); + if (ns->alias_for != NULL) { + storage_name = + mailbox_list_get_storage_name(ns->list, *mailbox); + ns = ns->alias_for; + *mailbox = mailbox_list_get_vname(ns->list, storage_name); + } + return ns; +} + +struct mail_namespace * mail_namespace_find_visible(struct mail_namespace *namespaces, const char *mailbox) {
--- a/src/lib-storage/mail-namespace.h Thu Sep 15 23:39:33 2011 +0300 +++ b/src/lib-storage/mail-namespace.h Fri Sep 16 12:39:19 2011 +0300 @@ -108,6 +108,12 @@ namespace could be found. */ struct mail_namespace * mail_namespace_find(struct mail_namespace *namespaces, const char *mailbox); +/* Find namespace for mailbox and return it. If the namespace has alias_for + set, return that namespace instead and change mailbox name to be a valid + inside it. */ +struct mail_namespace * +mail_namespace_find_unalias(struct mail_namespace *namespaces, + const char **mailbox); /* Like above, but ignore hidden namespaces. */ struct mail_namespace * mail_namespace_find_visible(struct mail_namespace *namespaces,