Mercurial > dovecot > core-2.2
changeset 11786:fd33ccbf235e
dsync: Fixed brain unit test not to crash at deinit.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Sun, 11 Jul 2010 18:32:43 +0100 |
parents | d2b09976c704 |
children | cd4db940dcbf |
files | src/dsync/dsync-brain.c src/dsync/dsync-brain.h src/dsync/dsync.c src/dsync/test-dsync-brain.c |
diffstat | 4 files changed, 10 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/src/dsync/dsync-brain.c Sun Jul 11 13:25:38 2010 +0100 +++ b/src/dsync/dsync-brain.c Sun Jul 11 18:32:43 2010 +0100 @@ -785,7 +785,7 @@ dsync_brain_fail(brain); brain->state++; - if (brain->to == NULL) + if (brain->to == NULL && (brain->flags & DSYNC_BRAIN_FLAG_LOCAL) == 0) brain->to = timeout_add(0, dsync_brain_sync, brain); }
--- a/src/dsync/dsync-brain.h Sun Jul 11 13:25:38 2010 +0100 +++ b/src/dsync/dsync-brain.h Sun Jul 11 18:32:43 2010 +0100 @@ -6,7 +6,9 @@ DSYNC_BRAIN_FLAG_VERBOSE = 0x02, /* Run in backup mode. All changes from src are forced into dest, discarding any potential changes in dest. */ - DSYNC_BRAIN_FLAG_BACKUP = 0x04 + DSYNC_BRAIN_FLAG_BACKUP = 0x04, + /* Run in "local mode". Don't use ioloop. */ + DSYNC_BRAIN_FLAG_LOCAL = 0x08 }; struct dsync_worker;
--- a/src/dsync/dsync.c Sun Jul 11 13:25:38 2010 +0100 +++ b/src/dsync/dsync.c Sun Jul 11 18:32:43 2010 +0100 @@ -283,8 +283,8 @@ } i_set_failure_prefix(t_strdup_printf("dsync(%s): ", username)); - brain = dsync_brain_init(worker1, worker2, - mailbox, brain_flags); + brain = dsync_brain_init(worker1, worker2, mailbox, + brain_flags | DSYNC_BRAIN_FLAG_LOCAL); server = NULL; dsync_brain_sync_all(brain); } else if (dsync_server) {
--- a/src/dsync/test-dsync-brain.c Sun Jul 11 13:25:38 2010 +0100 +++ b/src/dsync/test-dsync-brain.c Sun Jul 11 18:32:43 2010 +0100 @@ -150,7 +150,8 @@ src_test_worker = (struct test_dsync_worker *)src_worker; dest_test_worker = (struct test_dsync_worker *)dest_worker; - brain = dsync_brain_init(src_worker, dest_worker, NULL, 0); + brain = dsync_brain_init(src_worker, dest_worker, NULL, + DSYNC_BRAIN_FLAG_LOCAL); dsync_brain_sync(brain); /* have brain read the mailboxes */ @@ -240,7 +241,8 @@ dest_test_worker = (struct test_dsync_worker *)dest_worker; brain = dsync_brain_init(src_worker, dest_worker, NULL, - DSYNC_BRAIN_FLAG_FULL_SYNC); + DSYNC_BRAIN_FLAG_FULL_SYNC | + DSYNC_BRAIN_FLAG_LOCAL); dsync_brain_sync(brain); /* have brain read the mailboxes */