]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
quota: Allow quota_name setting to differ from quota filter name
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Wed, 22 Jan 2025 22:01:27 +0000 (00:01 +0200)
committerAki Tuomi <aki.tuomi@open-xchange.com>
Wed, 12 Feb 2025 10:34:16 +0000 (12:34 +0200)
src/plugins/quota/quota-count.c
src/plugins/quota/quota-private.h
src/plugins/quota/quota.c

index a61fd0c7cc2fa7b0dfd1c7b902a58f88d74abfd5..f622485170b98a429bce1d455231af1c3c61a832 100644 (file)
@@ -39,7 +39,7 @@ quota_count_mailbox(struct quota_root *root, struct mail_namespace *ns,
        int ret;
 
        box = mailbox_alloc(ns->list, vname, MAILBOX_FLAG_READONLY);
-       if (settings_get_filter(box->event, "quota", root->set->quota_name,
+       if (settings_get_filter(box->event, "quota", root->set_filter_name,
                                &quota_root_setting_parser_info, 0,
                                &set, error_r) < 0) {
                *error_result_r = QUOTA_GET_RESULT_INTERNAL_ERROR;
index 37e23c9f81ab26bf4c9edd6572efcce2f2c3f2eb..7f3b08f8842d0bca83b1ec372107409d0630813a 100644 (file)
@@ -65,6 +65,7 @@ struct quota_backend {
 struct quota_root {
        pool_t pool;
 
+       const char *set_filter_name;
        const struct quota_root_settings *set;
 
        struct quota *quota;
index 0e026c9d974c3f1a7ad8186544cebdd955709cbc..8a2fba7254bff98021b986043851c8312230b23f 100644 (file)
@@ -148,7 +148,7 @@ quota_root_settings_get(struct quota_root *root, struct event *set_event,
 {
        if (set_event == NULL)
                set_event = root->backend.event;
-       return settings_get_filter(set_event, "quota", root->set->quota_name,
+       return settings_get_filter(set_event, "quota", root->set_filter_name,
                                   &quota_root_setting_parser_info, 0,
                                   set_r, error_r);
 }
@@ -202,6 +202,7 @@ quota_root_init(struct quota *quota, struct event *set_event, const char *root_n
        root->pool = pool_alloconly_create("quota root", 512);
        root->quota = quota;
        root->backend = *root_set->backend;
+       root->set_filter_name = p_strdup(root->pool, root_name);
        p_array_init(&root->namespaces, root->pool, 4);
        settings_free(root_set);