X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/7a498f5b6c49690344a288059434e8886937a80f..307555eba3720362922cf25c15991b21f0e72dab:/receiver.c diff --git a/receiver.c b/receiver.c index 4325e30f..d6481eb0 100644 --- a/receiver.c +++ b/receiver.c @@ -147,7 +147,7 @@ int open_tmpfile(char *fnametmp, const char *fname, struct file_struct *file) * information should have been previously transferred, but that may * not be the case with -R */ if (fd == -1 && relative_paths && errno == ENOENT - && create_directory_path(fnametmp) == 0) { + && make_path(fnametmp, MKP_SKIP_SLASH | MKP_DROP_NAME) == 0) { /* Get back to name with XXXXXX in it. */ get_tmpname(fnametmp, fname); fd = do_mkstemp(fnametmp, file->mode & INITACCESSPERMS); @@ -361,7 +361,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); } @@ -491,14 +491,14 @@ int recv_files(int f_in, char *local_name) rprintf(FINFO, "recv_files(%s)\n", fname); #ifdef SUPPORT_XATTRS - if (iflags & ITEM_REPORT_XATTR && !dry_run) + if (iflags & ITEM_REPORT_XATTR && do_xfers) recv_xattr_request(file, f_in); #endif if (!(iflags & ITEM_TRANSFER)) { maybe_log_item(file, iflags, itemizing, xname); #ifdef SUPPORT_XATTRS - if (preserve_xattrs && iflags & ITEM_REPORT_XATTR && !dry_run) + if (preserve_xattrs && iflags & ITEM_REPORT_XATTR && do_xfers) set_file_attrs(fname, file, NULL, fname, 0); #endif if (iflags & ITEM_IS_NEW) { @@ -562,19 +562,6 @@ int recv_files(int f_in, char *local_name) exit_cleanup(RERR_PROTOCOL); } - if (!do_xfers) { /* log the transfer */ - log_item(FCLIENT, file, &stats, iflags, NULL); - if (read_batch) - discard_receive_data(f_in, F_LENGTH(file)); - continue; - } - if (write_batch < 0) { - log_item(FCLIENT, file, &stats, iflags, NULL); - if (!am_server) - discard_receive_data(f_in, F_LENGTH(file)); - continue; - } - if (read_batch) { int wanted = redoing ? we_want_redo(ndx) @@ -590,6 +577,19 @@ int recv_files(int f_in, char *local_name) } } + if (!do_xfers) { /* log the transfer */ + log_item(FCLIENT, file, &stats, iflags, NULL); + if (read_batch) + discard_receive_data(f_in, F_LENGTH(file)); + continue; + } + if (write_batch < 0) { + log_item(FCLIENT, file, &stats, iflags, NULL); + if (!am_server) + discard_receive_data(f_in, F_LENGTH(file)); + continue; + } + partialptr = partial_dir ? partial_dir_fname(fname) : fname; if (protocol_version >= 29) {