From: Timo Sirainen Date: Thu, 1 Jul 2010 17:01:37 +0000 (+0100) Subject: dsync: Another try at not increasing mailbox uidnext/highestmodseq on failure X-Git-Tag: 2.0.rc1~38 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=09e0d4f8fd60cca7cac3b993d962c43bc0f4f9ec;p=thirdparty%2Fdovecot%2Fcore.git dsync: Another try at not increasing mailbox uidnext/highestmodseq on failure --HG-- branch : HEAD --- diff --git a/src/dsync/dsync-brain.c b/src/dsync/dsync-brain.c index dee06c4d9d..63aea42696 100644 --- a/src/dsync/dsync-brain.c +++ b/src/dsync/dsync-brain.c @@ -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.