Don't ever call make_backup() if we're removing a destination directory
authorWayne Davison <wayned@samba.org>
Wed, 27 Oct 2004 06:34:13 +0000 (06:34 +0000)
committerWayne Davison <wayned@samba.org>
Wed, 27 Oct 2004 06:34:13 +0000 (06:34 +0000)
(just remove it).

receiver.c

index 124a280..3618ed1 100644 (file)
@@ -122,16 +122,16 @@ void delete_files(struct file_list *flist)
                                continue;
                        if (flist_find(flist,local_file_list->files[i]) < 0) {
                                char *f = f_name(local_file_list->files[i]);
                                continue;
                        if (flist_find(flist,local_file_list->files[i]) < 0) {
                                char *f = f_name(local_file_list->files[i]);
-                               if (make_backups && (backup_dir || !is_backup_file(f))) {
+                               int mode = local_file_list->files[i]->mode;
+                               if (make_backups && (backup_dir || !is_backup_file(f))
+                                 && !S_ISDIR(mode)) {
                                        make_backup(f);
                                        if (verbose) {
                                                rprintf(FINFO, "deleting %s\n",
                                                        safe_fname(f));
                                        }
                                        make_backup(f);
                                        if (verbose) {
                                                rprintf(FINFO, "deleting %s\n",
                                                        safe_fname(f));
                                        }
-                               } else {
-                                       int mode = local_file_list->files[i]->mode;
+                               } else
                                        delete_one(f, S_ISDIR(mode) != 0);
                                        delete_one(f, S_ISDIR(mode) != 0);
-                               }
                                deletion_count++;
                        }
                }
                                deletion_count++;
                        }
                }