From: Timo Sirainen Date: Wed, 22 Jan 2025 22:01:27 +0000 (+0200) Subject: quota: Allow quota_name setting to differ from quota filter name X-Git-Tag: 2.4.1~259 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=95f3e86417fcdc8f14b97e0284a2b474869aeca5;p=thirdparty%2Fdovecot%2Fcore.git quota: Allow quota_name setting to differ from quota filter name --- diff --git a/src/plugins/quota/quota-count.c b/src/plugins/quota/quota-count.c index a61fd0c7cc..f622485170 100644 --- a/src/plugins/quota/quota-count.c +++ b/src/plugins/quota/quota-count.c @@ -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, "a_root_setting_parser_info, 0, &set, error_r) < 0) { *error_result_r = QUOTA_GET_RESULT_INTERNAL_ERROR; diff --git a/src/plugins/quota/quota-private.h b/src/plugins/quota/quota-private.h index 37e23c9f81..7f3b08f884 100644 --- a/src/plugins/quota/quota-private.h +++ b/src/plugins/quota/quota-private.h @@ -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; diff --git a/src/plugins/quota/quota.c b/src/plugins/quota/quota.c index 0e026c9d97..8a2fba7254 100644 --- a/src/plugins/quota/quota.c +++ b/src/plugins/quota/quota.c @@ -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, "a_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);