* 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);
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);
}
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) {
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)
}
}
+ 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) {