return alist->module_ctx.super.create_mailbox_dir(list, name, type);
}
+static void acl_mailbox_list_deinit(struct mailbox_list *list)
+{
+ struct acl_mailbox_list *alist = ACL_LIST_CONTEXT(list);
+
+ acl_backend_deinit(&alist->rights.backend);
+ alist->module_ctx.super.deinit(list);
+}
+
static void acl_mailbox_list_init_shared(struct mailbox_list *list)
{
struct acl_mailbox_list *alist;
alist = p_new(list->pool, struct acl_mailbox_list, 1);
alist->module_ctx.super = *v;
list->vlast = &alist->module_ctx.super;
+ v->deinit = acl_mailbox_list_deinit;
v->iter_init = acl_mailbox_list_iter_init_shared;
MODULE_CONTEXT_SET(list, acl_mailbox_list_module, alist);
alist = p_new(list->pool, struct acl_mailbox_list, 1);
alist->module_ctx.super = *v;
list->vlast = &alist->module_ctx.super;
+ v->deinit = acl_mailbox_list_deinit;
v->iter_init = acl_mailbox_list_iter_init;
v->iter_next = acl_mailbox_list_iter_next;
v->iter_deinit = acl_mailbox_list_iter_deinit;
abox = p_new(box->pool, struct acl_mailbox, 1);
abox->module_ctx.super = *v;
box->vlast = &abox->module_ctx.super;
- abox->aclobj = acl_object_init_from_name(alist->rights.backend,
- mailbox_get_name(box));
if ((box->flags & MAILBOX_FLAG_IGNORE_ACLS) == 0) {
+ abox->aclobj = acl_object_init_from_name(alist->rights.backend,
+ mailbox_get_name(box));
abox->acl_enabled = TRUE;
v->is_readonly = acl_is_readonly;
v->allow_new_keywords = acl_allow_new_keywords;