diff options
author | Wayne Davison <wayned@samba.org> | 2008-07-19 22:45:05 -0700 |
---|---|---|
committer | Wayne Davison <wayned@samba.org> | 2008-07-19 22:50:28 -0700 |
commit | 886df221c1ce1660a2b6cd274b13952b482fe5bf (patch) | |
tree | debfb3dd61dc6e2ac952d5f641f9c891435250fa /flist.c | |
parent | fb01d1fb07f6efd3752ff895fe8a77e26a2b2055 (diff) | |
download | rsync-886df221c1ce1660a2b6cd274b13952b482fe5bf.tar.gz |
Added a '%C' (MD5 checksum) flag for the output/logfile formatting.
Diffstat (limited to 'flist.c')
-rw-r--r-- | flist.c | 13 |
1 files changed, 10 insertions, 3 deletions
@@ -66,6 +66,7 @@ extern int sanitize_paths; extern int munge_symlinks; extern int need_unsorted_flist; extern int output_needs_newline; +extern int sender_keeps_checksum; extern int unsort_ndx; extern struct stats stats; extern char *filesfrom_host; @@ -1209,6 +1210,12 @@ struct file_struct *make_file(const char *fname, struct file_list *flist, extra_len += EXTRA_LEN; #endif + if (always_checksum && am_sender && S_ISREG(st.st_mode)) { + file_checksum(thisname, tmp_sum, st.st_size); + if (sender_keeps_checksum) + extra_len += SUM_EXTRA_CNT * EXTRA_LEN; + } + #if EXTRA_ROUNDING > 0 if (extra_len & (EXTRA_ROUNDING * EXTRA_LEN)) extra_len = (extra_len | (EXTRA_ROUNDING * EXTRA_LEN)) + EXTRA_LEN; @@ -1272,9 +1279,6 @@ struct file_struct *make_file(const char *fname, struct file_list *flist, memcpy(bp + basename_len, linkname, linkname_len); #endif - if (always_checksum && am_sender && S_ISREG(st.st_mode)) - file_checksum(thisname, tmp_sum, st.st_size); - if (am_sender) F_PATHNAME(file) = pathname; else if (!pool) @@ -1305,6 +1309,9 @@ struct file_struct *make_file(const char *fname, struct file_list *flist, return NULL; } + if (sender_keeps_checksum && S_ISREG(st.st_mode)) + memcpy(F_SUM(file), tmp_sum, checksum_len); + if (unsort_ndx) F_NDX(file) = dir_count; |