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);
}
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;
}
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) {
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 */
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 */