diff --git a/flist.c b/flist.c
--- a/flist.c
+++ b/flist.c
-@@ -67,6 +67,7 @@ extern int protocol_version;
- extern int sanitize_paths;
+@@ -68,6 +68,7 @@ extern int sanitize_paths;
extern int munge_symlinks;
extern int need_unsorted_flist;
+ extern int sender_symlink_iconv;
+extern int sender_keeps_checksum;
extern int unsort_ndx;
extern struct stats stats;
extern char *filesfrom_host;
-@@ -1187,6 +1188,12 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
+@@ -1223,6 +1224,12 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
extra_len += EXTRA_LEN;
#endif
#if EXTRA_ROUNDING > 0
if (extra_len & (EXTRA_ROUNDING * EXTRA_LEN))
extra_len = (extra_len | (EXTRA_ROUNDING * EXTRA_LEN)) + EXTRA_LEN;
-@@ -1250,9 +1257,6 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
+@@ -1286,9 +1293,6 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
memcpy(bp + basename_len, linkname, linkname_len);
#endif
if (am_sender)
F_PATHNAME(file) = pathname;
else if (!pool)
-@@ -1283,6 +1287,9 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
+@@ -1300,6 +1304,9 @@ struct file_struct *make_file(const char *fname, struct file_list *flist,
return NULL;
}
extern int gid_ndx;
@@ -57,6 +59,7 @@ extern iconv_t ic_send, ic_recv;
extern char curr_dir[];
- extern char *module_dir;
+ extern char *full_module_path;
extern unsigned int module_dirlen;
+extern char sender_file_sum[MAX_DIGEST_LEN];
static int log_initialised;
static int logfile_was_closed;
-@@ -628,6 +631,28 @@ static void log_formatted(enum logcode code, const char *format, const char *op,
+@@ -632,6 +635,28 @@ static void log_formatted(enum logcode code, const char *format, const char *op,
snprintf(buf2, sizeof buf2, fmt, (double)b);
n = buf2;
break;
diff --git a/options.c b/options.c
--- a/options.c
+++ b/options.c
-@@ -1524,7 +1524,8 @@ int parse_arguments(int *argc_p, const char ***argv_p)
+@@ -1525,7 +1525,8 @@ int parse_arguments(int *argc_p, const char ***argv_p)
else if (log_format_has(stdout_format, 'i'))
stdout_format_has_i = itemize_changes | 1;
if (!log_format_has(stdout_format, 'b')
extern struct file_list *cur_flist, *first_flist, *dir_flist;
extern struct filter_list_struct daemon_filter_list;
-@@ -165,10 +167,9 @@ static int receive_data(int f_in, char *fname_r, int fd_r, OFF_T size_r,
+@@ -166,10 +168,9 @@ static int receive_data(int f_in, char *fname_r, int fd_r, OFF_T size_r,
const char *fname, int fd, OFF_T total_size)
{
static char file_sum1[MAX_DIGEST_LEN];
OFF_T offset = 0;
OFF_T offset2;
char *data;
-@@ -298,15 +299,16 @@ static int receive_data(int f_in, char *fname_r, int fd_r, OFF_T size_r,
+@@ -302,15 +303,16 @@ static int receive_data(int f_in, char *fname_r, int fd_r, OFF_T size_r,
exit_cleanup(RERR_FILEIO);
}
return 0;
return 1;
}
-diff --git a/rsync.yo b/rsync.yo
---- a/rsync.yo
-+++ b/rsync.yo
-@@ -2093,7 +2093,7 @@ by the server and defaults to the current code(time()). This option
- is used to set a specific checksum seed, which is useful for
- applications that want repeatable block and file checksums, or
- in the case where the user wants a more random checksum seed.
--Note that setting NUM to 0 causes rsync to use the default of code(time())
-+Setting NUM to 0 causes rsync to use the default of code(time())
- for checksum seed.
- enddit()
-
diff --git a/rsyncd.conf.yo b/rsyncd.conf.yo
--- a/rsyncd.conf.yo
+++ b/rsyncd.conf.yo
-@@ -509,7 +509,8 @@ quote(itemization(
- it() %a the remote IP address
+@@ -510,6 +510,7 @@ quote(itemization(
it() %b the number of bytes actually transferred
it() %B the permission bits of the file (e.g. rwxrwxrwt)
-- it() %c the checksum bytes received for this file (only when sending)
-+ it() %c the total size of the block checksums received for the basis file (only when sending)
+ it() %c the total size of the block checksums received for the basis file (only when sending)
+ it() %C the full-file MD5 checksum if bf(--checksum) is enabled or a file was transferred (only for protocol 30 or above).
it() %f the filename (long form on sender; no trailing "/")
it() %G the gid of the file (decimal) or "DEFAULT"