flags_r);
}
+int mailbox_list_get_count(struct mailbox_list *list, unsigned int *count_r)
+{
+ struct mailbox_list_iterate_context *iter =
+ mailbox_list_iter_init(list, "*",
+ MAILBOX_LIST_ITER_RAW_LIST |
+ MAILBOX_LIST_ITER_NO_AUTO_BOXES |
+ MAILBOX_LIST_ITER_RETURN_NO_FLAGS);
+ unsigned int count = 0;
+ while (mailbox_list_iter_next(iter) != NULL)
+ count++;
+ if (mailbox_list_iter_deinit(&iter) < 0)
+ return -1;
+
+ *count_r = count;
+ return 0;
+}
+
static bool mailbox_list_init_changelog(struct mailbox_list *list)
{
struct mailbox_permissions perm;
current time is used */
void mailbox_list_set_changelog_timestamp(struct mailbox_list *list,
time_t stamp);
+/* Get the number of mailboxes in the list, ignoring any ACLs. Auto-created
+ mailboxes that haven't been yet created are not counted. */
+int mailbox_list_get_count(struct mailbox_list *list, unsigned int *count_r);
/* Returns a prefix that temporary files should use without conflicting
with the namespace. */