X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/fad3dc421c7fa9fd62af1645c0338658dcfc9e24..0394e34a69e7051012125dc4e49d8d928ce15290:/sender.c diff --git a/sender.c b/sender.c index 225383b9..39988225 100644 --- a/sender.c +++ b/sender.c @@ -153,11 +153,15 @@ int read_iflags(int f_in, int f_out, int ndx, char *buf) len = -1; } - /* XXX Temporary backward compatibility when talking to 2.6.4pre[12] */ - if (protocol_version >= 29 && iflags & ITEM_TRANSFER - && !S_ISREG(the_file_list->files[ndx]->mode)) { - iflags &= ~ITEM_TRANSFER; - iflags |= ITEM_LOCAL_CHANGE; + /* XXX Temporary compatibility hack */ + if (iflags & ITEM_REPORT_XATTRS) { /* old ITEM_UPDATE */ + iflags &= ~ITEM_REPORT_XATTRS; + if (!(iflags & (ITEM_TRANSFER|ITEM_LOCAL_CHANGE))) { + if (S_ISREG(the_file_list->files[ndx]->mode)) + iflags |= ITEM_TRANSFER; + else + iflags |= ITEM_LOCAL_CHANGE; + } } if (iflags & ITEM_TRANSFER) { @@ -252,7 +256,7 @@ void send_files(struct file_list *flist, int f_out, int f_in) log_item(file, &stats, iflags, NULL); write_int(f_out, i); if (protocol_version >= 29) - write_shortint(f_out, iflags); + write_shortint(f_out, iflags | ITEM_REPORT_XATTRS); continue; } @@ -305,7 +309,7 @@ void send_files(struct file_list *flist, int f_out, int f_in) write_int(f_out, i); if (protocol_version >= 29) - write_shortint(f_out, iflags); + write_shortint(f_out, iflags | ITEM_REPORT_XATTRS); write_sum_head(f_out, s); if (verbose > 2) { @@ -321,6 +325,9 @@ void send_files(struct file_list *flist, int f_out, int f_in) set_compression(fname); match_sums(f_out, s, mbuf, st.st_size); + if (do_progress) + end_progress(st.st_size); + if (!log_before_transfer) log_item(file, &initial_stats, iflags, NULL);