X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/94af17a6eb29c08b5b3efb25f00d8604c51cd5e7..33c4b445ef295f7abe023b208651d450ab2a5c3b:/generator.c diff --git a/generator.c b/generator.c index 92954d4f..91d0402e 100644 --- a/generator.c +++ b/generator.c @@ -31,6 +31,7 @@ extern int daemon_log_format_has_i; extern int am_root; extern int am_server; extern int am_daemon; +extern int do_progress; extern int recurse; extern int relative_paths; extern int keep_dirlinks; @@ -48,6 +49,7 @@ extern int delete_after; extern int module_id; extern int ignore_errors; extern int remove_sent_files; +extern int delay_updates; extern int update_only; extern int opt_ignore_existing; extern int inplace; @@ -1111,6 +1113,7 @@ void generate_files(int f_out, struct file_list *flist, char *local_name) int need_retouch_dir_perms = 0; int save_only_existing = only_existing; int save_opt_ignore_existing = opt_ignore_existing; + int save_do_progress = do_progress; allowed_lull = read_batch ? 0 : (io_timeout + 1) / 2; lull_mod = allowed_lull * 5; @@ -1140,6 +1143,7 @@ void generate_files(int f_out, struct file_list *flist, char *local_name) if (delete_before && !local_name && flist->count > 0) do_delete_pass(flist); + do_progress = 0; if (whole_file < 0) whole_file = 0; @@ -1220,6 +1224,9 @@ void generate_files(int f_out, struct file_list *flist, char *local_name) rprintf(FINFO,"generate_files phase=%d\n",phase); write_int(f_out, -1); + /* Reduce round-trip lag-time for a useless delay-updates phase. */ + if (protocol_version >= 29 && !delay_updates) + write_int(f_out, -1); /* Read MSG_DONE for the redo phase (and any prior messages). */ get_redo_num(itemizing, code); @@ -1228,11 +1235,13 @@ void generate_files(int f_out, struct file_list *flist, char *local_name) phase++; if (verbose > 2) rprintf(FINFO, "generate_files phase=%d\n", phase); - write_int(f_out, -1); - /* Read MSG_DONE for delay-update phase & prior messages. */ + if (delay_updates) + write_int(f_out, -1); + /* Read MSG_DONE for delay-updates phase & prior messages. */ get_redo_num(itemizing, code); } + do_progress = save_do_progress; if (delete_after && !local_name && flist->count > 0) do_delete_pass(flist);