- Got rid of a superfluous empty line.
[rsync/rsync.git] / generator.c
index e645d21..b7d7850 100644 (file)
@@ -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,