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 /receiver.c | |
parent | fb01d1fb07f6efd3752ff895fe8a77e26a2b2055 (diff) | |
download | android_external_rsync-886df221c1ce1660a2b6cd274b13952b482fe5bf.tar.gz android_external_rsync-886df221c1ce1660a2b6cd274b13952b482fe5bf.tar.bz2 android_external_rsync-886df221c1ce1660a2b6cd274b13952b482fe5bf.zip |
Added a '%C' (MD5 checksum) flag for the output/logfile formatting.
Diffstat (limited to 'receiver.c')
-rw-r--r-- | receiver.c | 12 |
1 files changed, 7 insertions, 5 deletions
@@ -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; } |