From: Timo Sirainen Date: Wed, 14 Aug 2024 07:25:28 +0000 (+0300) Subject: quota: Remove support for Maildir++-specific quota rules X-Git-Tag: 2.4.0~406 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5eb0d67186b33c22d4a04e6bfac4124935f1ce38;p=thirdparty%2Fdovecot%2Fcore.git quota: Remove support for Maildir++-specific quota rules Using quota_rule = *:backend=10C,20S worked previously with Maildir++ quota to read a limit of 10 messages and 20 bytes of quota. If necessary, this parsing can be replaced by using userdb lua script. --- diff --git a/src/plugins/quota/quota-maildir.c b/src/plugins/quota/quota-maildir.c index dd398f170a..75d79070cf 100644 --- a/src/plugins/quota/quota-maildir.c +++ b/src/plugins/quota/quota-maildir.c @@ -758,28 +758,6 @@ static void maildir_quota_deinit(struct quota_root *_root) i_free(root); } -static bool -maildir_quota_parse_rule(struct quota_root_settings *root_set ATTR_UNUSED, - struct quota_rule *rule, - const char *str, const char **error_r) -{ - uint64_t bytes, count; - - if (strcmp(str, "NOQUOTA") == 0) { - bytes = 0; - count = 0; - } else if (!maildir_parse_limit(str, &bytes, &count)) { - *error_r = t_strdup_printf( - "quota-maildir: Invalid Maildir++ quota rule \"%s\"", - str); - return FALSE; - } - - rule->bytes_limit = bytes; - rule->count_limit = count; - return TRUE; -} - static void maildir_quota_root_namespace_added(struct quota_root *_root, struct mail_namespace *ns) @@ -893,7 +871,6 @@ struct quota_backend quota_backend_maildir = { .alloc = maildir_quota_alloc, .init = maildir_quota_init, .deinit = maildir_quota_deinit, - .parse_rule = maildir_quota_parse_rule, .namespace_added = maildir_quota_namespace_added, .get_resources = maildir_quota_root_get_resources, .get_resource = maildir_quota_get_resource, diff --git a/src/plugins/quota/quota-private.h b/src/plugins/quota/quota-private.h index 9ea49c139a..388af54450 100644 --- a/src/plugins/quota/quota-private.h +++ b/src/plugins/quota/quota-private.h @@ -54,10 +54,6 @@ struct quota_backend_vfuncs { const char **error_r); void (*deinit)(struct quota_root *root); - bool (*parse_rule)(struct quota_root_settings *root_set, - struct quota_rule *rule, - const char *str, const char **error_r); - /* called once for each namespace */ void (*namespace_added)(struct quota *quota, struct mail_namespace *ns); diff --git a/src/plugins/quota/quota-util.c b/src/plugins/quota/quota-util.c index 3046dbb388..583726609a 100644 --- a/src/plugins/quota/quota-util.c +++ b/src/plugins/quota/quota-util.c @@ -228,7 +228,7 @@ int quota_root_add_rule(struct event *event, pool_t pool, const char *rule_def, const char **error_r) { struct quota_rule *rule; - const char *p, *mailbox_mask, *value; + const char *p, *mailbox_mask; int ret = 0; p = strchr(rule_def, ':'); @@ -258,20 +258,10 @@ int quota_root_add_rule(struct event *event, pool_t pool, return 0; } - if (str_begins(p, "backend=", &value)) { - if (root_set->backend->v.parse_rule == NULL) { - *error_r = "backend rule not supported"; - ret = -1; - } else if (!root_set->backend->v.parse_rule(root_set, rule, - value, error_r)) - ret = -1; - } else { - bool relative_rule = rule != &root_set->default_rule; - - if (quota_rule_parse_limits(event, root_set, rule, p, rule_def, - relative_rule, error_r) < 0) - ret = -1; - } + bool relative_rule = rule != &root_set->default_rule; + if (quota_rule_parse_limits(event, root_set, rule, p, rule_def, + relative_rule, error_r) < 0) + ret = -1; quota_root_recalculate_relative_rules(event, root_set, root_set->default_rule.bytes_limit,