}
struct quota_root_iter *
-quota_root_iter_init(struct mailbox *box)
+quota_root_iter_init_user(struct mail_user *user)
{
struct quota_root_iter *iter;
iter = i_new(struct quota_root_iter, 1);
- iter->quota = box->list->ns->owner != NULL ?
- quota_get_mail_user_quota(box->list->ns->owner) :
- quota_get_mail_user_quota(box->list->ns->user);
+ iter->quota = quota_get_mail_user_quota(user);
+ return iter;
+}
+
+struct quota_root_iter *
+quota_root_iter_init(struct mailbox *box)
+{
+ struct quota_root_iter *iter;
+ struct mail_user *user;
+
+ user = box->list->ns->owner != NULL ?
+ box->list->ns->owner : box->list->ns->user;
+ iter = quota_root_iter_init_user(user);
iter->box = box;
return iter;
}
return NULL;
for (; iter->i < count; iter->i++) {
- if (!quota_root_is_visible(roots[iter->i], iter->box, FALSE))
+ if (iter->box != NULL &&
+ !quota_root_is_visible(roots[iter->i], iter->box, FALSE))
continue;
root = roots[iter->i];
void quota_deinit(struct quota **quota);
/* List all visible quota roots. They don't need to be freed. */
+struct quota_root_iter *quota_root_iter_init_user(struct mail_user *user);
struct quota_root_iter *quota_root_iter_init(struct mailbox *box);
struct quota_root *quota_root_iter_next(struct quota_root_iter *iter);
void quota_root_iter_deinit(struct quota_root_iter **iter);