X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/705132bceed54d18fb38aefa3f976b4c402cb7b8..5692657757a6c0e3ba60320719ef51af6f78c909:/flist.c diff --git a/flist.c b/flist.c index 622fb4e6..ac0a903f 100644 --- a/flist.c +++ b/flist.c @@ -42,7 +42,6 @@ extern int xfer_dirs; extern int filesfrom_fd; extern int one_file_system; extern int copy_dirlinks; -extern int keep_dirlinks; extern int preserve_uid; extern int preserve_gid; extern int preserve_acls; @@ -52,7 +51,6 @@ extern int preserve_hard_links; extern int preserve_devices; extern int preserve_specials; extern int missing_args; -extern int sock_f_in; extern int uid_ndx; extern int gid_ndx; extern int eol_nulls; @@ -2052,7 +2050,7 @@ struct file_list *send_file_list(int f, int argc, char *argv[]) struct timeval start_tv, end_tv; int64 start_write; int use_ff_fd = 0; - int disable_buffering; + int disable_buffering, reenable_multiplex = -1; int flags = recurse ? FLAG_CONTENT_DIR : 0; int reading_remotely = filesfrom_host != NULL; int rl_flags = (reading_remotely ? 0 : RL_DUMP_COMMENTS) @@ -2093,12 +2091,11 @@ struct file_list *send_file_list(int f, int argc, char *argv[]) full_fname(argv[0])); exit_cleanup(RERR_FILESELECT); } - if (protocol_version == 30) { - /* Older protocols send the files-from data w/o packaging it in - * multiplexed I/O packets, but protocol 30 messed up and did - * this after starting multiplexing. We'll temporarily switch + if (protocol_version < 31) { + /* Older protocols send the files-from data w/o packaging + * it in multiplexed I/O packets, so temporarily switch * to buffered I/O to match this behavior. */ - io_end_multiplex_in(MPLX_TO_BUFFERED); + reenable_multiplex = io_end_multiplex_in(MPLX_TO_BUFFERED); } use_ff_fd = 1; } @@ -2305,8 +2302,8 @@ struct file_list *send_file_list(int f, int argc, char *argv[]) send_file_name(f, flist, fbuf, &st, flags, NO_FILTERS); } - if (use_ff_fd && protocol_version == 30) - io_start_multiplex_in(sock_f_in); + if (reenable_multiplex >= 0) + io_start_multiplex_in(reenable_multiplex); gettimeofday(&end_tv, NULL); stats.flist_buildtime = (int64)(end_tv.tv_sec - start_tv.tv_sec) * 1000 @@ -2352,6 +2349,7 @@ struct file_list *send_file_list(int f, int argc, char *argv[]) flist->sorted = flist->files; flist_sort_and_clean(flist, 0); file_total += flist->used; + file_old_total += flist->used; if (numeric_ids <= 0 && !inc_recurse) send_id_list(f);