dovecot-2.0: doveadm: Fixed mailbox-guid search key to work with...
dovecot at dovecot.org
dovecot at dovecot.org
Thu Dec 30 12:40:53 EET 2010
details: http://hg.dovecot.org/dovecot-2.0/rev/15c32384817b
changeset: 12531:15c32384817b
user: Timo Sirainen <tss at iki.fi>
date: Thu Dec 30 12:40:50 2010 +0200
description:
doveadm: Fixed mailbox-guid search key to work with shared/public mailboxes.
diffstat:
src/doveadm/doveadm-mail-list-iter.c | 14 +++++++++++---
1 files changed, 11 insertions(+), 3 deletions(-)
diffs (52 lines):
diff -r 9216e5c861ee -r 15c32384817b src/doveadm/doveadm-mail-list-iter.c
--- a/src/doveadm/doveadm-mail-list-iter.c Thu Dec 30 12:04:30 2010 +0200
+++ b/src/doveadm/doveadm-mail-list-iter.c Thu Dec 30 12:40:50 2010 +0200
@@ -18,7 +18,8 @@
static int
search_args_get_mailbox_patterns(const struct mail_search_arg *args,
- ARRAY_TYPE(const_string) *patterns)
+ ARRAY_TYPE(const_string) *patterns,
+ bool *have_guid_r)
{
const struct mail_search_arg *subargs;
@@ -30,7 +31,7 @@
subargs = args->value.subargs;
for (; subargs != NULL; subargs = subargs->next) {
if (!search_args_get_mailbox_patterns(subargs,
- patterns))
+ patterns, have_guid_r))
return 0;
}
break;
@@ -42,6 +43,9 @@
}
array_append(patterns, &args->value.str, 1);
break;
+ case SEARCH_MAILBOX_GUID:
+ *have_guid_r = TRUE;
+ break;
default:
break;
}
@@ -58,14 +62,18 @@
struct doveadm_mail_list_iter *iter;
ARRAY_TYPE(const_string) patterns;
enum namespace_type ns_mask = NAMESPACE_PRIVATE;
+ bool have_guid = FALSE;
iter = i_new(struct doveadm_mail_list_iter, 1);
iter->search_args = search_args;
t_array_init(&patterns, 16);
- search_args_get_mailbox_patterns(search_args->args, &patterns);
+ search_args_get_mailbox_patterns(search_args->args, &patterns,
+ &have_guid);
if (array_count(&patterns) == 0) {
iter_flags |= MAILBOX_LIST_ITER_SKIP_ALIASES;
+ if (have_guid)
+ ns_mask |= NAMESPACE_SHARED | NAMESPACE_PUBLIC;
array_append(&patterns, &all_pattern, 1);
} else {
iter_flags |= MAILBOX_LIST_ITER_STAR_WITHIN_NS;
More information about the dovecot-cvs
mailing list