dovecot-2.0: dsync backup: Added -R parameter to reverse backup ...
dovecot at dovecot.org
dovecot at dovecot.org
Thu Jul 1 20:06:44 EEST 2010
details: http://hg.dovecot.org/dovecot-2.0/rev/c36dbec5cb9f
changeset: 11682:c36dbec5cb9f
user: Timo Sirainen <tss at iki.fi>
date: Thu Jul 01 18:06:40 2010 +0100
description:
dsync backup: Added -R parameter to reverse backup direction.
diffstat:
src/dsync/dsync.c | 22 ++++++++++++++++++----
1 files changed, 18 insertions(+), 4 deletions(-)
diffs (68 lines):
diff -r 28639e01a479 -r c36dbec5cb9f src/dsync/dsync.c
--- a/src/dsync/dsync.c Thu Jul 01 18:02:06 2010 +0100
+++ b/src/dsync/dsync.c Thu Jul 01 18:06:40 2010 +0100
@@ -123,7 +123,7 @@
usage(void)
{
fprintf(stderr,
-"usage: dsync [-C <alt char>] [-m <mailbox>] [-u <user>] [-frv]\n"
+"usage: dsync [-C <alt char>] [-m <mailbox>] [-u <user>] [-frRv]\n"
" mirror <local mail_location> | [<user>@]<host> | <remote dsync command>\n"
);
exit(1);
@@ -145,17 +145,17 @@
struct mail_storage_service_user *service_user;
struct mail_storage_service_input input;
struct mail_user *mail_user, *mail_user2 = NULL;
- struct dsync_worker *worker1, *worker2;
+ struct dsync_worker *worker1, *worker2, *workertmp;
const char *error, *username, *cmd_name, *mailbox = NULL;
const char *local_location = NULL, *const *remote_cmd_args = NULL;
bool dsync_server = FALSE, readonly = FALSE, unexpected_changes = FALSE;
- bool dsync_debug = FALSE;
+ bool dsync_debug = FALSE, reverse_workers = FALSE;
char alt_char = '_';
int c, ret, fd_in = STDIN_FILENO, fd_out = STDOUT_FILENO;
master_service = master_service_init("dsync",
MASTER_SERVICE_FLAG_STANDALONE,
- &argc, &argv, "+C:Dfm:ru:v");
+ &argc, &argv, "+C:Dfm:rRu:v");
username = getenv("USER");
while ((c = master_getopt(master_service)) > 0) {
@@ -176,6 +176,9 @@
case 'r':
readonly = TRUE;
break;
+ case 'R':
+ reverse_workers = TRUE;
+ break;
case 'f':
brain_flags |= DSYNC_BRAIN_FLAG_FULL_SYNC;
break;
@@ -257,6 +260,11 @@
i_fatal("User init failed");
worker2 = dsync_worker_init_local(mail_user2, alt_char);
+ if (reverse_workers) {
+ workertmp = worker1;
+ worker1 = worker2;
+ worker2 = workertmp;
+ }
i_set_failure_prefix(t_strdup_printf("dsync(%s): ", username));
brain = dsync_brain_init(worker1, worker2,
@@ -280,6 +288,12 @@
if (readonly)
dsync_worker_set_readonly(worker1);
worker2 = dsync_worker_init_proxy_client(fd_in, fd_out);
+ if (reverse_workers) {
+ workertmp = worker1;
+ worker1 = worker2;
+ worker2 = workertmp;
+ }
+
brain = dsync_brain_init(worker1, worker2,
mailbox, brain_flags);
server = NULL;
More information about the dovecot-cvs
mailing list