X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/7627e92c549a662ddc922dd7f08e8970da7bbd15..860dcf68ad6270ed3d0b9b56bc2cb4a203b28dee:/flist.c diff --git a/flist.c b/flist.c index c8aabf38..a071cdae 100644 --- a/flist.c +++ b/flist.c @@ -58,7 +58,6 @@ extern int copy_links; extern int copy_unsafe_links; extern int protocol_version; extern int sanitize_paths; -extern int orig_umask; extern const char *io_write_phase; extern struct stats stats; extern struct file_list *the_file_list; @@ -714,12 +713,6 @@ static struct file_struct *receive_file_entry(struct file_list *flist, read_buf(f, sum, checksum_len); } - if (!preserve_perms) { - /* set an appropriate set of permissions based on original - * permissions and umask. This emulates what GNU cp does */ - file->mode &= ~orig_umask; - } - return file; } @@ -1917,6 +1910,7 @@ struct file_list *get_dirlist(char *dirname, int dlen, struct file_list *dirlist; char dirbuf[MAXPATHLEN]; int save_recurse = recurse; + int save_xfer_dirs = xfer_dirs; if (dlen < 0) { dlen = strlcpy(dirbuf, dirname, MAXPATHLEN); @@ -1928,7 +1922,9 @@ struct file_list *get_dirlist(char *dirname, int dlen, dirlist = flist_new(WITHOUT_HLINK, "get_dirlist"); recurse = 0; + xfer_dirs = 1; send_directory(ignore_filter_rules ? -2 : -1, dirlist, dirname, dlen); + xfer_dirs = save_xfer_dirs; recurse = save_recurse; if (do_progress) flist_count_offset += dirlist->count;