X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/0e5665d3abcfad22b94727ba8a71ecb6a79b33b3..cfe397804951cec80aa61dc1575ebe878a5d3807:/generator.c diff --git a/generator.c b/generator.c index e645d21f..b7d78506 100644 --- a/generator.c +++ b/generator.c @@ -69,6 +69,7 @@ extern int ignore_timeout; extern int protocol_version; extern int fuzzy_basis; extern int always_checksum; +extern int checksum_len; extern char *partial_dir; extern char *basis_dir[]; extern int compare_dest; @@ -307,7 +308,7 @@ static void do_delete_pass(struct file_list *flist) delete_in_dir(flist, fbuf, file); } - //delete_in_dir(NULL, NULL, NULL); + delete_in_dir(NULL, NULL, NULL); if (do_progress && !am_server) rprintf(FINFO, " \r"); @@ -384,8 +385,7 @@ static int unchanged_file(char *fn, struct file_struct *file, STRUCT_STAT *st) if (always_checksum && S_ISREG(st->st_mode)) { char sum[MD4_SUM_LENGTH]; file_checksum(fn, sum, st->st_size); - return memcmp(sum, file->u.sum, protocol_version < 21 ? 2 - : MD4_SUM_LENGTH) == 0; + return memcmp(sum, file->u.sum, checksum_len) == 0; } if (size_only) @@ -1069,6 +1069,10 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx, else if (fnamecmp_type == FNAMECMP_FUZZY) ; else if (unchanged_file(fnamecmp, file, &st)) { + if (partialptr) { + do_unlink(partialptr); + handle_partial_dir(partialptr, PDIR_DELETE); + } if (fnamecmp_type == FNAMECMP_FNAME) { if (itemizing) { itemize(file, ndx, real_ret, &real_st,