]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
dsync: Another try at not increasing mailbox uidnext/highestmodseq on failure
authorTimo Sirainen <tss@iki.fi>
Thu, 1 Jul 2010 17:01:37 +0000 (18:01 +0100)
committerTimo Sirainen <tss@iki.fi>
Thu, 1 Jul 2010 17:01:37 +0000 (18:01 +0100)
--HG--
branch : HEAD

src/dsync/dsync-brain.c

index dee06c4d9d685dab7a44dd070e128013cc86f6ac..63aea4269670a877a8112ed923c2a6a849591fd4 100644 (file)
@@ -63,6 +63,10 @@ int dsync_brain_deinit(struct dsync_brain **_brain)
        if (brain->dest_subs_list != NULL)
                dsync_brain_subs_list_deinit(&brain->dest_subs_list);
 
+       if (dsync_worker_has_failed(brain->src_worker) ||
+           dsync_worker_has_failed(brain->dest_worker))
+               ret = -1;
+
        *_brain = NULL;
        i_free(brain->mailbox);
        i_free(brain);
@@ -693,7 +697,9 @@ static void
 dsync_brain_sync_update_mailboxes(struct dsync_brain *brain)
 {
        const struct dsync_brain_mailbox *mailbox;
-       bool failed_changes = dsync_brain_has_unexpected_changes(brain);
+       bool failed_changes = dsync_brain_has_unexpected_changes(brain) ||
+               dsync_worker_has_failed(brain->src_worker) ||
+               dsync_worker_has_failed(brain->dest_worker);
 
        array_foreach(&brain->mailbox_sync->mailboxes, mailbox) {
                /* don't update mailboxes if any changes had failed.