dovecot-2.2: dsync: Renamed -a parameter to -N. It also now skip...

dovecot at dovecot.org dovecot at dovecot.org
Tue Feb 19 08:36:08 EET 2013


details:   http://hg.dovecot.org/dovecot-2.2/rev/607758d425e7
changeset: 15836:607758d425e7
user:      Timo Sirainen <tss at iki.fi>
date:      Tue Feb 19 08:35:23 2013 +0200
description:
dsync: Renamed -a parameter to -N. It also now skips invisible namespaces.

diffstat:

 src/doveadm/dsync/doveadm-dsync.c            |  18 +++++++++---------
 src/doveadm/dsync/dsync-brain-mailbox-tree.c |   9 +++++++--
 src/doveadm/dsync/dsync-brain-private.h      |   2 +-
 src/doveadm/dsync/dsync-brain.c              |   4 ++--
 src/doveadm/dsync/dsync-brain.h              |   2 +-
 src/doveadm/dsync/dsync-ibc-stream.c         |  10 +++++-----
 6 files changed, 25 insertions(+), 20 deletions(-)

diffs (154 lines):

diff -r 02529503c59c -r 607758d425e7 src/doveadm/dsync/doveadm-dsync.c
--- a/src/doveadm/dsync/doveadm-dsync.c	Tue Feb 19 08:27:40 2013 +0200
+++ b/src/doveadm/dsync/doveadm-dsync.c	Tue Feb 19 08:35:23 2013 +0200
@@ -30,7 +30,7 @@
 #include <ctype.h>
 #include <sys/wait.h>
 
-#define DSYNC_COMMON_GETOPT_ARGS "+adEfl:m:n:r:Rs:"
+#define DSYNC_COMMON_GETOPT_ARGS "+dEfl:m:n:Nr:Rs:"
 #define DSYNC_REMOTE_CMD_EXIT_WAIT_SECS 30
 
 struct dsync_cmd_context {
@@ -50,7 +50,7 @@
 	unsigned int lock_timeout;
 
 	unsigned int lock:1;
-	unsigned int sync_all_namespaces:1;
+	unsigned int sync_visible_namespaces:1;
 	unsigned int default_replica_location:1;
 	unsigned int backup:1;
 	unsigned int reverse_backup:1;
@@ -429,8 +429,8 @@
 	}
 
 	brain_flags = DSYNC_BRAIN_FLAG_SEND_MAIL_REQUESTS;
-	if (ctx->sync_all_namespaces)
-		brain_flags |= DSYNC_BRAIN_FLAG_SYNC_ALL_NAMESPACES;
+	if (ctx->sync_visible_namespaces)
+		brain_flags |= DSYNC_BRAIN_FLAG_SYNC_VISIBLE_NAMESPACES;
 
 	if (ctx->reverse_backup)
 		brain_flags |= DSYNC_BRAIN_FLAG_BACKUP_RECV;
@@ -550,8 +550,8 @@
 		run_cmd(ctx, remote_cmd_args);
 		ctx->remote = TRUE;
 	}
-	if (ctx->sync_all_namespaces && !ctx->remote)
-		i_fatal("-a parameter requires syncing with remote host");
+	if (ctx->sync_visible_namespaces && !ctx->remote)
+		i_fatal("-N parameter requires syncing with remote host");
 	return 0;
 }
 
@@ -583,9 +583,6 @@
 	struct dsync_cmd_context *ctx = (struct dsync_cmd_context *)_ctx;
 
 	switch (c) {
-	case 'a':
-		ctx->sync_all_namespaces = TRUE;
-		break;
 	case 'd':
 		ctx->default_replica_location = TRUE;
 		break;
@@ -607,6 +604,9 @@
 	case 'n':
 		ctx->namespace_prefix = optarg;
 		break;
+	case 'N':
+		ctx->sync_visible_namespaces = TRUE;
+		break;
 	case 'r':
 		ctx->rawlog_path = optarg;
 		break;
diff -r 02529503c59c -r 607758d425e7 src/doveadm/dsync/dsync-brain-mailbox-tree.c
--- a/src/doveadm/dsync/dsync-brain-mailbox-tree.c	Tue Feb 19 08:27:40 2013 +0200
+++ b/src/doveadm/dsync/dsync-brain-mailbox-tree.c	Tue Feb 19 08:35:23 2013 +0200
@@ -16,8 +16,13 @@
 {
 	if (brain->sync_ns == ns)
 		return TRUE;
-	if (brain->sync_all_namespaces)
-		return TRUE;
+	if (brain->sync_visible_namespaces) {
+		if ((ns->flags & NAMESPACE_FLAG_HIDDEN) == 0)
+			return TRUE;
+		if ((ns->flags & (NAMESPACE_FLAG_LIST_PREFIX |
+				  NAMESPACE_FLAG_LIST_CHILDREN)) != 0)
+			return TRUE;
+	}
 
 	return brain->sync_ns == NULL &&
 		strcmp(ns->unexpanded_set->location,
diff -r 02529503c59c -r 607758d425e7 src/doveadm/dsync/dsync-brain-private.h
--- a/src/doveadm/dsync/dsync-brain-private.h	Tue Feb 19 08:27:40 2013 +0200
+++ b/src/doveadm/dsync/dsync-brain-private.h	Tue Feb 19 08:35:23 2013 +0200
@@ -89,7 +89,7 @@
 	unsigned int backup_send:1;
 	unsigned int backup_recv:1;
 	unsigned int debug:1;
-	unsigned int sync_all_namespaces:1;
+	unsigned int sync_visible_namespaces:1;
 	unsigned int changes_during_sync:1;
 	unsigned int failed:1;
 };
diff -r 02529503c59c -r 607758d425e7 src/doveadm/dsync/dsync-brain.c
--- a/src/doveadm/dsync/dsync-brain.c	Tue Feb 19 08:27:40 2013 +0200
+++ b/src/doveadm/dsync/dsync-brain.c	Tue Feb 19 08:35:23 2013 +0200
@@ -79,8 +79,8 @@
 	brain->backup_send = (flags & DSYNC_BRAIN_FLAG_BACKUP_SEND) != 0;
 	brain->backup_recv = (flags & DSYNC_BRAIN_FLAG_BACKUP_RECV) != 0;
 	brain->debug = (flags & DSYNC_BRAIN_FLAG_DEBUG) != 0;
-	brain->sync_all_namespaces =
-		(flags & DSYNC_BRAIN_FLAG_SYNC_ALL_NAMESPACES) != 0;
+	brain->sync_visible_namespaces =
+		(flags & DSYNC_BRAIN_FLAG_SYNC_VISIBLE_NAMESPACES) != 0;
 }
 
 struct dsync_brain *
diff -r 02529503c59c -r 607758d425e7 src/doveadm/dsync/dsync-brain.h
--- a/src/doveadm/dsync/dsync-brain.h	Tue Feb 19 08:27:40 2013 +0200
+++ b/src/doveadm/dsync/dsync-brain.h	Tue Feb 19 08:35:23 2013 +0200
@@ -10,7 +10,7 @@
 	DSYNC_BRAIN_FLAG_BACKUP_SEND		= 0x02,
 	DSYNC_BRAIN_FLAG_BACKUP_RECV		= 0x04,
 	DSYNC_BRAIN_FLAG_DEBUG			= 0x08,
-	DSYNC_BRAIN_FLAG_SYNC_ALL_NAMESPACES	= 0x10
+	DSYNC_BRAIN_FLAG_SYNC_VISIBLE_NAMESPACES= 0x10
 };
 
 enum dsync_brain_sync_type {
diff -r 02529503c59c -r 607758d425e7 src/doveadm/dsync/dsync-ibc-stream.c
--- a/src/doveadm/dsync/dsync-ibc-stream.c	Tue Feb 19 08:27:40 2013 +0200
+++ b/src/doveadm/dsync/dsync-ibc-stream.c	Tue Feb 19 08:35:23 2013 +0200
@@ -66,7 +66,7 @@
 	{ .name = "handshake",
 	  .chr = 'H',
 	  .required_keys = "hostname",
-	  .optional_keys = "sync_ns_prefix sync_box sync_type debug sync_all_namespaces "
+	  .optional_keys = "sync_ns_prefix sync_box sync_type debug sync_visible_namespaces "
 	  	"send_mail_requests backup_send backup_recv lock_timeout"
 	},
 	{ .name = "mailbox_state",
@@ -571,8 +571,8 @@
 		dsync_serializer_encode_add(encoder, "backup_recv", "");
 	if ((set->brain_flags & DSYNC_BRAIN_FLAG_DEBUG) != 0)
 		dsync_serializer_encode_add(encoder, "debug", "");
-	if ((set->brain_flags & DSYNC_BRAIN_FLAG_SYNC_ALL_NAMESPACES) != 0)
-		dsync_serializer_encode_add(encoder, "sync_all_namespaces", "");
+	if ((set->brain_flags & DSYNC_BRAIN_FLAG_SYNC_VISIBLE_NAMESPACES) != 0)
+		dsync_serializer_encode_add(encoder, "sync_visible_namespaces", "");
 
 	dsync_serializer_encode_finish(&encoder, str);
 	dsync_ibc_stream_send_string(ibc, str);
@@ -641,8 +641,8 @@
 		set->brain_flags |= DSYNC_BRAIN_FLAG_BACKUP_RECV;
 	if (dsync_deserializer_decode_try(decoder, "debug", &value))
 		set->brain_flags |= DSYNC_BRAIN_FLAG_DEBUG;
-	if (dsync_deserializer_decode_try(decoder, "sync_all_namespaces", &value))
-		set->brain_flags |= DSYNC_BRAIN_FLAG_SYNC_ALL_NAMESPACES;
+	if (dsync_deserializer_decode_try(decoder, "sync_visible_namespaces", &value))
+		set->brain_flags |= DSYNC_BRAIN_FLAG_SYNC_VISIBLE_NAMESPACES;
 
 	*set_r = set;
 	return DSYNC_IBC_RECV_RET_OK;


More information about the dovecot-cvs mailing list