doveadm-mail-list-iter.c revision 013a0e03309a4a77552f6e8dd46d06c3d3f60f53
7384b4e78eaab44693c985192276e31322155e32Stephan Bosch/* Copyright (c) 2010-2011 Dovecot authors, see the included COPYING file */
7384b4e78eaab44693c985192276e31322155e32Stephan Boschsearch_args_get_mailbox_patterns(const struct mail_search_arg *args,
7384b4e78eaab44693c985192276e31322155e32Stephan Bosch for (; subargs != NULL; subargs = subargs->next) {
7384b4e78eaab44693c985192276e31322155e32Stephan Bosch if (!search_args_get_mailbox_patterns(subargs,
7384b4e78eaab44693c985192276e31322155e32Stephan Boschdoveadm_mail_list_iter_init(struct mail_user *user,
7384b4e78eaab44693c985192276e31322155e32Stephan Bosch enum namespace_type ns_mask = NAMESPACE_PRIVATE;
7384b4e78eaab44693c985192276e31322155e32Stephan Bosch iter = i_new(struct doveadm_mail_list_iter, 1);
7384b4e78eaab44693c985192276e31322155e32Stephan Bosch search_args_get_mailbox_patterns(search_args->args, &patterns,
7384b4e78eaab44693c985192276e31322155e32Stephan Bosch ns_mask |= NAMESPACE_SHARED | NAMESPACE_PUBLIC;
7384b4e78eaab44693c985192276e31322155e32Stephan Bosch iter_flags |= MAILBOX_LIST_ITER_STAR_WITHIN_NS;
7384b4e78eaab44693c985192276e31322155e32Stephan Bosch ns_mask |= NAMESPACE_SHARED | NAMESPACE_PUBLIC;
7384b4e78eaab44693c985192276e31322155e32Stephan Bosch iter->iter = mailbox_list_iter_init_namespaces(user->namespaces,
65c0e43da8cfc730eeb4634f8aa384081bbfa4e7Timo Sirainendoveadm_mail_list_iter_full_init(struct mail_user *user,
7384b4e78eaab44693c985192276e31322155e32Stephan Bosch iter = doveadm_mail_list_iter_init(user, search_args, iter_flags);
7384b4e78eaab44693c985192276e31322155e32Stephan Boschvoid doveadm_mail_list_iter_deinit(struct doveadm_mail_list_iter **_iter)
7384b4e78eaab44693c985192276e31322155e32Stephan Bosch if (mailbox_list_iter_deinit(&iter->iter) < 0)
7384b4e78eaab44693c985192276e31322155e32Stephan Boschdoveadm_mail_list_iter_next(struct doveadm_mail_list_iter *iter)
7384b4e78eaab44693c985192276e31322155e32Stephan Bosch unsigned int len;
7384b4e78eaab44693c985192276e31322155e32Stephan Bosch while ((info = mailbox_list_iter_next(iter->iter)) != NULL) {
7384b4e78eaab44693c985192276e31322155e32Stephan Bosch /* when listing "foo/%" it lists "foo/". skip it. */