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