dovecot-2.0: dsync: Fixed brain unit test not to crash at deinit.

dovecot at dovecot.org dovecot at dovecot.org
Sun Jul 11 20:38:00 EEST 2010


details:   http://hg.dovecot.org/dovecot-2.0/rev/fd33ccbf235e
changeset: 11786:fd33ccbf235e
user:      Timo Sirainen <tss at iki.fi>
date:      Sun Jul 11 18:32:43 2010 +0100
description:
dsync: Fixed brain unit test not to crash at deinit.

diffstat:

 src/dsync/dsync-brain.c      |  2 +-
 src/dsync/dsync-brain.h      |  4 +++-
 src/dsync/dsync.c            |  4 ++--
 src/dsync/test-dsync-brain.c |  6 ++++--
 4 files changed, 10 insertions(+), 6 deletions(-)

diffs (63 lines):

diff -r d2b09976c704 -r fd33ccbf235e src/dsync/dsync-brain.c
--- 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);
 }
 
diff -r d2b09976c704 -r fd33ccbf235e src/dsync/dsync-brain.h
--- 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;
diff -r d2b09976c704 -r fd33ccbf235e src/dsync/dsync.c
--- 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) {
diff -r d2b09976c704 -r fd33ccbf235e src/dsync/test-dsync-brain.c
--- 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 */


More information about the dovecot-cvs mailing list