From: Timo Sirainen Date: Sun, 4 Mar 2012 10:04:46 +0000 (+0200) Subject: replicator: Queue handling was pretty broken X-Git-Tag: 2.1.2~81 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b4fe950568060e114e1bed8ce505ea794cc0e709;p=thirdparty%2Fdovecot%2Fcore.git replicator: Queue handling was pretty broken --- diff --git a/src/replication/replicator/replicator-queue.c b/src/replication/replicator/replicator-queue.c index 94875389f7..accd300925 100644 --- a/src/replication/replicator/replicator-queue.c +++ b/src/replication/replicator/replicator-queue.c @@ -111,6 +111,7 @@ replicator_queue_add_int(struct replicator_queue *queue, const char *username, if (user == NULL) { user = i_new(struct replicator_user, 1); user->username = i_strdup(username); + hash_table_insert(queue->user_hash, user->username, user); } else { if (user->priority > priority) { /* user already has a higher priority than this */ @@ -237,6 +238,8 @@ replicator_queue_handle_sync_lookups(struct replicator_queue *queue, void replicator_queue_push(struct replicator_queue *queue, struct replicator_user *user) { + i_assert(user->popped); + priorityq_add(queue->user_queue, &user->item); user->popped = FALSE;