]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
quota-clone: Always update dict
authorAki Tuomi <aki.tuomi@dovecot.fi>
Wed, 4 Oct 2017 07:32:17 +0000 (10:32 +0300)
committerAki Tuomi <aki.tuomi@dovecot.fi>
Wed, 4 Oct 2017 08:25:55 +0000 (11:25 +0300)
ret_count and ret_bytes become zero if no quota rules
are specified, so we need to update the dict anyways.

Broken in 81d10aff29baede9ae4944d6c89790871123d11d

src/plugins/quota-clone/quota-clone-plugin.c

index 5e9a5274d6d549ee106aa72cee5c692873b5c8bb..46725c9b2b2c7501165bff5fd4d1b3c408d2442c 100644 (file)
@@ -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