From: Timo Sirainen Date: Tue, 18 Sep 2012 16:16:04 +0000 (+0300) Subject: quota: Allow negative percentage rules up to -99% X-Git-Tag: 2.1.10~7 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d7babe048f9ae1afa5357973b8de8c929753a216;p=thirdparty%2Fdovecot%2Fcore.git quota: Allow negative percentage rules up to -99% --- diff --git a/src/plugins/quota/quota-private.h b/src/plugins/quota/quota-private.h index 573c70d744..fa408f5e63 100644 --- a/src/plugins/quota/quota-private.h +++ b/src/plugins/quota/quota-private.h @@ -34,7 +34,7 @@ struct quota_rule { int64_t bytes_limit, count_limit; /* relative to default_rule */ - unsigned int bytes_percent, count_percent; + int bytes_percent, count_percent; /* Don't include this mailbox in quota */ unsigned int ignore:1; diff --git a/src/plugins/quota/quota.c b/src/plugins/quota/quota.c index f42038aae2..9387dd38bd 100644 --- a/src/plugins/quota/quota.c +++ b/src/plugins/quota/quota.c @@ -361,7 +361,7 @@ quota_rule_parse_percentage(struct quota_root_settings *root_set, { int64_t percentage = *limit; - if (percentage <= 0 || percentage >= -1U) { + if (percentage <= -100 || percentage >= -1U) { *error_r = p_strdup_printf(root_set->set->pool, "Invalid rule percentage: %lld", (long long)percentage); return -1; @@ -385,9 +385,9 @@ static void quota_rule_recalculate_relative_rules(struct quota_rule *rule, int64_t bytes_limit, int64_t count_limit) { - if (rule->bytes_percent > 0) + if (rule->bytes_percent != 0) rule->bytes_limit = bytes_limit * rule->bytes_percent / 100; - if (rule->count_percent > 0) + if (rule->count_percent != 0) rule->count_limit = count_limit * rule->count_percent / 100; }