Mercurial > dovecot > core-2.2
changeset 14276:9c6eeeb810c0
dsync server: Ignore -f, -R and -m parameters instead of failing.
v2.0 dsync did this as well.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Sun, 04 Mar 2012 13:01:09 +0200 |
parents | 5a62b55914c4 |
children | 8cbc130c2b72 |
files | src/doveadm/dsync/doveadm-dsync.c |
diffstat | 1 files changed, 12 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/src/doveadm/dsync/doveadm-dsync.c Sun Mar 04 12:50:02 2012 +0200 +++ b/src/doveadm/dsync/doveadm-dsync.c Sun Mar 04 13:01:09 2012 +0200 @@ -644,6 +644,7 @@ char *p, *dup, new_flags[6]; int max_argc, src, dest, i, j; bool flag_f = FALSE, flag_R = FALSE, flag_m, flag_u, flag_C, has_arg; + bool dsync_server = FALSE; p = strrchr(argv[0], '/'); if (p == NULL) p = argv[0]; @@ -732,9 +733,10 @@ new_argv[dest] = "sync"; else if (strcmp(argv[src], "backup") == 0) new_argv[dest] = "backup"; - else if (strcmp(argv[src], "server") == 0) + else if (strcmp(argv[src], "server") == 0) { new_argv[dest] = "dsync-server"; - else + dsync_server = TRUE; + } else i_fatal("Invalid parameter: %s", argv[src]); src++; dest++; @@ -746,12 +748,14 @@ /* dsync flags */ new_flags[0] = '-'; new_flags[1] = 'E'; i = 2; - if (flag_f) - new_flags[i++] = 'f'; - if (flag_R) - new_flags[i++] = 'R'; - if (mailbox != NULL) - new_flags[i++] = 'm'; + if (!dsync_server) { + if (flag_f) + new_flags[i++] = 'f'; + if (flag_R) + new_flags[i++] = 'R'; + if (mailbox != NULL) + new_flags[i++] = 'm'; + } i_assert((unsigned int)i < sizeof(new_flags)); new_flags[i] = '\0';