X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/57edc4808f566fbaa58ec96bc7e543b1ccb92ab9..5bfe00688206cde3cbc603e8d47b28788a19ca3a:/generator.c diff --git a/generator.c b/generator.c index d17e3b9e..84913007 100644 --- a/generator.c +++ b/generator.c @@ -288,7 +288,7 @@ static void delete_in_dir(char *fbuf, struct file_struct *file, dev_t *fs_dev) if (allowed_lull) maybe_send_keepalive(time(NULL), MSK_ALLOW_FLUSH); - if (io_error && !ignore_errors) { + if (io_error & IOERR_GENERAL && !ignore_errors) { if (already_warned) return; rprintf(FINFO, @@ -549,8 +549,10 @@ void itemize(const char *fnamecmp, struct file_struct *file, int ndx, int statre #ifdef SUPPORT_XATTRS if (preserve_xattrs && do_xfers && iflags & (ITEM_REPORT_XATTR|ITEM_TRANSFER)) { - send_xattr_request(NULL, file, - iflags & ITEM_REPORT_XATTR ? sock_f_out : -1); + int fd = iflags & ITEM_REPORT_XATTR + && (protocol_version < 31 || !BITS_SET(iflags, ITEM_XNAME_FOLLOWS|ITEM_LOCAL_CHANGE)) + ? sock_f_out : -1; + send_xattr_request(NULL, file, fd); } #endif } else if (ndx >= 0) { @@ -1176,7 +1178,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx, handle_skipped_hlink(file, itemizing, code, f_out); #endif rprintf(FERROR_XFER, - "skipping daemon-excluded %s \"%s\"\n", + "ERROR: daemon refused to receive %s \"%s\"\n", is_dir ? "directory" : "file", fname); if (is_dir) goto skipping_dir_contents; @@ -1351,6 +1353,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx, goto cleanup; } } + #ifdef SUPPORT_XATTRS if (preserve_xattrs && statret == 1) copy_xattrs(fnamecmpbuf, fname);