]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
replicator: Change replicator_queue_add_sync_callback() to take user struct
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Tue, 25 Oct 2022 10:08:36 +0000 (13:08 +0300)
committerTimo Sirainen <timo.sirainen@open-xchange.com>
Mon, 31 Oct 2022 12:09:10 +0000 (14:09 +0200)
This is just to clean up the API to match the previous change.

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

index 15319e333e325fd2c69a5bd27da29eae557a05c1..c70f1404ccce399577cd19227c792d5527f9c060 100644 (file)
@@ -90,8 +90,13 @@ notify_connection_input_line(struct notify_connection *conn, const char *line)
                request->conn = conn;
                request->id = id;
                notify_connection_ref(conn);
-               replicator_queue_add_sync(conn->queue, args[1],
-                                         notify_sync_callback, request);
+               struct replicator_user *user =
+                       replicator_queue_get(conn->queue, args[1]);
+               replicator_queue_update(conn->queue, user,
+                                       REPLICATION_PRIORITY_SYNC);
+               replicator_queue_add_sync_callback(conn->queue, user,
+                                                  notify_sync_callback,
+                                                  request);
        }
        return 0;
 }
index 8767a4b3bd6f50abbcf65837d001da50231eb41b..cfa77659cb5762038d9094b56e5ad49e104d5170 100644 (file)
@@ -181,16 +181,14 @@ void replicator_queue_add(struct replicator_queue *queue,
                queue->change_callback(queue->change_context);
 }
 
-void replicator_queue_add_sync(struct replicator_queue *queue,
-                              const char *username,
-                              replicator_sync_callback_t *callback,
-                              void *context)
+void replicator_queue_add_sync_callback(struct replicator_queue *queue,
+                                       struct replicator_user *user,
+                                       replicator_sync_callback_t *callback,
+                                       void *context)
 {
-       struct replicator_user *user;
        struct replicator_sync_lookup *lookup;
 
-       user = replicator_queue_get(queue, username);
-       replicator_queue_update(queue, user, REPLICATION_PRIORITY_SYNC);
+       i_assert(user->priority == REPLICATION_PRIORITY_SYNC);
 
        lookup = array_append_space(&queue->sync_lookups);
        lookup->user = user;
index 81858316e724866e6168722f46e54ee9189ae54c..4fd451a3f8fc7455532f95a538dbec9f522202ae 100644 (file)
@@ -56,10 +56,11 @@ void replicator_queue_update(struct replicator_queue *queue,
                             enum replication_priority priority);
 void replicator_queue_add(struct replicator_queue *queue,
                          struct replicator_user *user);
-void replicator_queue_add_sync(struct replicator_queue *queue,
-                              const char *username,
-                              replicator_sync_callback_t *callback,
-                              void *context);
+/* Call the callback when user with SYNC priority has finished syncing. */
+void replicator_queue_add_sync_callback(struct replicator_queue *queue,
+                                       struct replicator_user *user,
+                                       replicator_sync_callback_t *callback,
+                                       void *context);
 /* Remove user from replication queue and free it. */
 void replicator_queue_remove(struct replicator_queue *queue,
                             struct replicator_user **user);