summaryrefslogtreecommitdiff
path: root/receiver.c
diff options
context:
space:
mode:
authorWayne Davison <wayned@samba.org>2008-07-19 22:45:05 -0700
committerWayne Davison <wayned@samba.org>2008-07-19 22:50:28 -0700
commit886df221c1ce1660a2b6cd274b13952b482fe5bf (patch)
treedebfb3dd61dc6e2ac952d5f641f9c891435250fa /receiver.c
parentfb01d1fb07f6efd3752ff895fe8a77e26a2b2055 (diff)
downloadrsync-886df221c1ce1660a2b6cd274b13952b482fe5bf.tar.gz
Added a '%C' (MD5 checksum) flag for the output/logfile formatting.
Diffstat (limited to 'receiver.c')
-rw-r--r--receiver.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/receiver.c b/receiver.c
index 05ac184c..ffaf3e40 100644
--- a/receiver.c
+++ b/receiver.c
@@ -44,6 +44,7 @@ extern int remove_source_files;
extern int append_mode;
extern int sparse_files;
extern int keep_partial;
+extern int checksum_len;
extern int checksum_seed;
extern int inplace;
extern int delay_updates;
@@ -52,6 +53,7 @@ extern struct stats stats;
extern char *tmpdir;
extern char *partial_dir;
extern char *basis_dir[];
+extern char sender_file_sum[];
extern struct file_list *cur_flist, *first_flist, *dir_flist;
extern struct filter_list_struct daemon_filter_list;
@@ -163,10 +165,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];
- static char file_sum2[MAX_DIGEST_LEN];
struct map_struct *mapbuf;
struct sum_struct sum;
- int32 len, sum_len;
+ int32 len;
OFF_T offset = 0;
OFF_T offset2;
char *data;
@@ -296,15 +297,16 @@ static int receive_data(int f_in, char *fname_r, int fd_r, OFF_T size_r,
exit_cleanup(RERR_FILEIO);
}
- sum_len = sum_end(file_sum1);
+ if (sum_end(file_sum1) != checksum_len)
+ overflow_exit("checksum_len"); /* Impossible... */
if (mapbuf)
unmap_file(mapbuf);
- read_buf(f_in, file_sum2, sum_len);
+ read_buf(f_in, sender_file_sum, checksum_len);
if (DEBUG_GTE(CHKSUM, 2))
rprintf(FINFO,"got file_sum\n");
- if (fd != -1 && memcmp(file_sum1, file_sum2, sum_len) != 0)
+ if (fd != -1 && memcmp(file_sum1, sender_file_sum, checksum_len) != 0)
return 0;
return 1;
}