Improved the incremental sending of file lists in two ways: (1)
[rsync/rsync.git] / sender.c
index 0954218..cab7e23 100644 (file)
--- a/sender.c
+++ b/sender.c
@@ -44,6 +44,8 @@ extern int write_batch;
 extern struct stats stats;
 extern struct file_list *cur_flist, *first_flist;
 
+#define FILECNT_LOOKAHEAD 1000
+
 /**
  * @file
  *
@@ -180,7 +182,7 @@ void send_files(int f_in, int f_out)
 
        while (1) {
                if (inc_recurse)
-                       send_extra_file_list(f_out, 1000);
+                       send_extra_file_list(f_out, FILECNT_LOOKAHEAD);
 
                /* This call also sets cur_flist. */
                ndx = read_ndx_and_attrs(f_in, f_out, &iflags,
@@ -201,6 +203,9 @@ void send_files(int f_in, int f_out)
                        continue;
                }
 
+               if (inc_recurse)
+                       send_extra_file_list(f_out, FILECNT_LOOKAHEAD);
+
                file = cur_flist->files[ndx - cur_flist->ndx_start];
                if (F_ROOTDIR(file)) {
                        path = F_ROOTDIR(file);