else
file_checksum(thisname, st.st_size, tmp_sum);
}
-@@ -1937,6 +2150,9 @@ static void send_directory(int f, struct file_list *flist, char *fbuf, int len,
+@@ -1938,6 +2151,9 @@ static void send_directory(int f, struct file_list *flist, char *fbuf, int len,
closedir(d);
if (f >= 0 && recurse && !divert_dirs) {
int i, end = flist->used - 1;
/* send_if_directory() bumps flist->used, so use "end". */
-@@ -2560,6 +2776,9 @@ struct file_list *send_file_list(int f, int argc, char *argv[])
+@@ -2566,6 +2782,9 @@ struct file_list *send_file_list(int f, int argc, char *argv[])
} else
flist_eof = 1;
}
need_new_dirscan = 0;
}
-@@ -1570,6 +1572,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
+@@ -1572,6 +1574,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
else
change_local_filter_dir(fname, strlen(fname), F_DEPTH(file));
}
goto cleanup;
}
-@@ -1868,6 +1871,8 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
+@@ -1870,6 +1873,8 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
handle_partial_dir(partialptr, PDIR_DELETE);
}
set_file_attrs(fname, file, &sx, NULL, maybe_ATTRS_REPORT);
if (itemizing)
itemize(fnamecmp, file, ndx, statret, &sx, 0, 0, NULL);
#ifdef SUPPORT_HARD_LINKS
-@@ -2311,6 +2316,7 @@ void generate_files(int f_out, const char *local_name)
+@@ -2319,6 +2324,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];
-@@ -2395,6 +2401,9 @@ void generate_files(int f_out, const char *local_name)
+@@ -2403,6 +2409,9 @@ void generate_files(int f_out, const char *local_name)
wait_for_receiver();
}
extern int protocol_version;
extern int remove_source_files;
extern int preserve_hard_links;
-@@ -183,6 +184,9 @@ static void got_flist_entry_status(enum festatus status, const char *buf)
+@@ -188,6 +189,9 @@ static void got_flist_entry_status(enum festatus status, const char *buf)
flist_ndx_push(&hlink_list, ndx);
flist->in_progress++;
}
+ struct file_struct *file = flist->files[ndx - flist->ndx_start];
+ set_cached_checksum(flist, file);
}
+ #endif
break;
- case FES_REDO:
diff --git a/loadparm.c b/loadparm.c
--- a/loadparm.c
+++ b/loadparm.c
|| (preserve_hard_links && F_IS_HLINKED(file)))
send_msg_int(MSG_SUCCESS, ndx);
handle_partial_dir(partialptr, PDIR_DELETE);
-@@ -789,7 +790,7 @@ int recv_files(int f_in, char *local_name)
+@@ -790,7 +791,7 @@ int recv_files(int f_in, char *local_name)
case 2:
break;
case 1:
diff --git a/rsync.yo b/rsync.yo
--- a/rsync.yo
+++ b/rsync.yo
-@@ -551,9 +551,13 @@ computed just as it would be if bf(--sumfiles) was not specified.
+@@ -570,9 +570,13 @@ computed just as it would be if bf(--sumfiles) was not specified.
The MODE value is either "lax", for relaxed checking (which compares size
and mtime), "strict" (which also compares ctime and inode), or "none" to
diff --git a/rsyncd.conf.yo b/rsyncd.conf.yo
--- a/rsyncd.conf.yo
+++ b/rsyncd.conf.yo
-@@ -284,13 +284,15 @@ The default is tt(/var/run/rsyncd.lock).
+@@ -290,13 +290,15 @@ The default is tt(/var/run/rsyncd.lock).
dit(bf(checksum files)) This parameter tells rsync to make use of any cached
checksum information it finds in per-directory .rsyncsums files when the
current transfer is using the bf(--checksum) option. The value can be set