if (f >= 0 && recurse && !divert_dirs) {
int i, end = flist->used - 1;
/* send_if_directory() bumps flist->used, so use "end". */
-@@ -2435,6 +2651,9 @@ struct file_list *send_file_list(int f, int argc, char *argv[])
- }
+@@ -2436,6 +2652,9 @@ struct file_list *send_file_list(int f, int argc, char *argv[])
} else
flist_eof = 1;
-+
+
+ if (checksum_files & CSF_UPDATE && flist_eof)
+ reset_checksum_cache(0); /* writes any last updates */
-
++
return flist;
}
+
diff --git a/generator.c b/generator.c
--- a/generator.c
+++ b/generator.c
if (itemizing)
itemize(fnamecmp, file, ndx, statret, &sx, 0, 0, NULL);
#ifdef SUPPORT_HARD_LINKS
-@@ -2247,6 +2252,7 @@ void generate_files(int f_out, const char *local_name)
+@@ -2250,6 +2255,7 @@ void generate_files(int f_out, const char *local_name)
} else
change_local_filter_dir(fbuf, strlen(fbuf), F_DEPTH(fp));
}
}
for (i = cur_flist->low; i <= cur_flist->high; i++) {
struct file_struct *file = cur_flist->sorted[i];
-@@ -2327,6 +2333,9 @@ void generate_files(int f_out, const char *local_name)
+@@ -2333,6 +2339,9 @@ void generate_files(int f_out, const char *local_name)
wait_for_receiver();
}