From: Aki Tuomi Date: Wed, 4 Oct 2017 07:32:17 +0000 (+0300) Subject: quota-clone: Always update dict X-Git-Tag: 2.2.34~339 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b230a8863f3bfdfa066f968c772c03b1ad8e66e3;p=thirdparty%2Fdovecot%2Fcore.git quota-clone: Always update dict ret_count and ret_bytes become zero if no quota rules are specified, so we need to update the dict anyways. Broken in 81d10aff29baede9ae4944d6c89790871123d11d --- diff --git a/src/plugins/quota-clone/quota-clone-plugin.c b/src/plugins/quota-clone/quota-clone-plugin.c index 5e9a5274d6..46725c9b2b 100644 --- a/src/plugins/quota-clone/quota-clone-plugin.c +++ b/src/plugins/quota-clone/quota-clone-plugin.c @@ -72,24 +72,14 @@ static void quota_clone_flush_real(struct mailbox *box) i_error("quota_clone_plugin: Failed to lookup current quota count"); return; } - if (ret_bytes == 0 && ret_count == 0) { - /* quota isn't enabled - no point in updating it */ - return; - } - /* Then update the resources that exist. The resources can't really - change unless the quota backend is changed, so we don't worry about - the special case of ret_count changing between 1 and 0. Note that - ret_count==1 also when quota is unlimited. */ + /* update resources always regardless of existence, + FIXME: This should be fixed in v2.3 */ trans = dict_transaction_begin(quser->dict); - if (ret_bytes > 0) { - dict_set(trans, DICT_QUOTA_CLONE_BYTES_PATH, - t_strdup_printf("%llu", (unsigned long long)bytes_value)); - } - if (ret_count > 0) { - dict_set(trans, DICT_QUOTA_CLONE_COUNT_PATH, - t_strdup_printf("%llu", (unsigned long long)count_value)); - } + dict_set(trans, DICT_QUOTA_CLONE_BYTES_PATH, + t_strdup_printf("%llu", (unsigned long long)bytes_value)); + dict_set(trans, DICT_QUOTA_CLONE_COUNT_PATH, + t_strdup_printf("%llu", (unsigned long long)count_value)); if (dict_transaction_commit(&trans) < 0) i_error("quota_clone_plugin: Failed to commit dict update"); else