]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
replicator: Don't update user's last_update if priority doesn't change
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Tue, 25 Oct 2022 10:11:37 +0000 (13:11 +0300)
committerMartti Rannanjärvi <martti.rannanjarvi@open-xchange.com>
Wed, 2 Nov 2022 13:52:16 +0000 (15:52 +0200)
This didn't actually matter, since it was only used to check if importing
should update an existing user. However, importing is only run at startup
when all users have last_update=0 anyway.

The following changes bring new use cases for last_update.

src/replication/replicator/replicator-queue.c
src/replication/replicator/replicator-queue.h

index f6bc8fdfac454392e662e54942bc06e57c902595..5677beeab45acbc7df297e46929f604de14e28d3 100644 (file)
@@ -174,8 +174,8 @@ void replicator_queue_update(struct replicator_queue *queue ATTR_UNUSED,
                             struct replicator_user *user,
                             enum replication_priority priority)
 {
-       if (user->priority > priority) {
-               /* user already has a higher priority than this */
+       if (user->priority >= priority) {
+               /* user already has at least this high priority */
                return;
        }
        user->priority = priority;
index 4fd451a3f8fc7455532f95a538dbec9f522202ae..5d42d260345d96ee3bf928399cc3fb9c309a5de4 100644 (file)
@@ -50,7 +50,7 @@ replicator_queue_lookup(struct replicator_queue *queue, const char *username);
    must be called to add/move the user to the proper place in the queue. */
 struct replicator_user *
 replicator_queue_get(struct replicator_queue *queue, const char *username);
-/* Update user's priority, if it isn't already higher. */
+/* Update user's priority if it's currently lower. */
 void replicator_queue_update(struct replicator_queue *queue,
                             struct replicator_user *user,
                             enum replication_priority priority);