From 272adea36b1cc56b1167b173c87c725e866d2e5d Mon Sep 17 00:00:00 2001 From: Wayne Davison Date: Sat, 4 Apr 2009 07:37:51 -0700 Subject: [PATCH] Fixed --dry-run with --read-batch: - Avoid sending MSG_NO_SEND to the generator. - Check if the file is wanted before discarding the batched data. --- NEWS | 2 ++ receiver.c | 29 ++++++++++++++++------------- 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/NEWS b/NEWS index f8ef1725..61bfbf10 100644 --- a/NEWS +++ b/NEWS @@ -32,6 +32,8 @@ Changes since 3.0.5: receiving side when a mount-point directory did not match a directory in the transfer. + - Fixed the use of --dry-run with --read-batch. + - Fixed configure's erroneous use of target. - Fixed configure's --disable-debug option. diff --git a/receiver.c b/receiver.c index 1aba494c..8cd8331f 100644 --- a/receiver.c +++ b/receiver.c @@ -360,7 +360,7 @@ static void no_batched_update(int ndx, BOOL is_redo) rprintf(FERROR_XFER, "(No batched update for%s \"%s\")\n", is_redo ? " resend of" : "", f_name(file, NULL)); - if (inc_recurse) + if (inc_recurse && !dry_run) send_msg_int(MSG_NO_SEND, ndx); } @@ -537,6 +537,21 @@ int recv_files(int f_in, char *local_name) exit_cleanup(RERR_PROTOCOL); } + if (read_batch) { + int wanted = redoing + ? we_want_redo(ndx) + : gen_wants_ndx(ndx); + if (!wanted) { + rprintf(FINFO, + "(Skipping batched update for%s \"%s\")\n", + redoing ? " resend of" : "", + fname); + discard_receive_data(f_in, F_LENGTH(file)); + file->flags |= FLAG_FILE_SENT; + continue; + } + } + if (!do_xfers) { /* log the transfer */ log_item(FCLIENT, file, &stats, iflags, NULL); if (read_batch) @@ -550,18 +565,6 @@ int recv_files(int f_in, char *local_name) continue; } - if (read_batch) { - if (!(redoing ? we_want_redo(ndx) : gen_wants_ndx(ndx))) { - rprintf(FINFO, - "(Skipping batched update for%s \"%s\")\n", - redoing ? " resend of" : "", - fname); - discard_receive_data(f_in, F_LENGTH(file)); - file->flags |= FLAG_FILE_SENT; - continue; - } - } - partialptr = partial_dir ? partial_dir_fname(fname) : fname; if (protocol_version >= 29) { -- 2.34.1