X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/910e89b9633a345154704cccd7c5f4189f5ceb41..e844be4e7bfb2c0d9ea583cb4d507217f14ffa4d:/receiver.c diff --git a/receiver.c b/receiver.c index 1afdf2d3..85086f65 100644 --- a/receiver.c +++ b/receiver.c @@ -21,8 +21,8 @@ #include "rsync.h" extern int verbose; -extern int itemize_changes; extern int log_before_transfer; +extern int itemize_changes; extern int delete_after; extern int csum_length; extern struct stats stats; @@ -370,10 +370,15 @@ int recv_files(int f_in, struct file_list *flist, char *local_name, file = flist->files[i]; - if (itemize_changes) { - iflags = read_byte(f_in); + if (protocol_version >= 29) { + iflags = read_short(f_in); if (!(iflags & ITEM_UPDATING) || !S_ISREG(file->mode)) { - if (!dry_run || !am_server) + if (am_server) + ; /* do nothing */ + else if (itemize_changes + || iflags & ITEM_UPDATING + || (S_ISDIR(file->mode) + && iflags & ITEM_REPORT_TIME)) log_recv(file, &stats, iflags); continue; } @@ -403,9 +408,7 @@ int recv_files(int f_in, struct file_list *flist, char *local_name, rprintf(FINFO, "recv_files(%s)\n", safe_fname(fname)); if (dry_run) { /* log the transfer */ - if (!am_server && verbose && !log_format) - rprintf(FINFO, "%s\n", safe_fname(fname)); - else if (!am_server) + if (!am_server && log_format) log_recv(file, &stats, iflags); continue; } @@ -551,7 +554,7 @@ int recv_files(int f_in, struct file_list *flist, char *local_name, /* log the transfer */ if (log_before_transfer) log_recv(file, &initial_stats, iflags); - else if (!am_server && verbose && (!log_format || do_progress)) + else if (!am_server && verbose && do_progress) rprintf(FINFO, "%s\n", safe_fname(fname)); /* recv file data */