X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/8e41b68e8f975c02a5d9281be780ba5d1a385107..71daa07fb1c791c0f5eba3fc1b615df3a46441fc:/tls.c diff --git a/tls.c b/tls.c index cadacdc6..7628d688 100644 --- a/tls.c +++ b/tls.c @@ -46,6 +46,7 @@ int am_root = 0; int read_only = 1; int list_only = 0; int preserve_perms = 0; +int preserve_executability = 0; #ifdef SUPPORT_XATTRS @@ -89,7 +90,12 @@ static int stat_xattr(const char *fname, STRUCT_STAT *fst) exit(1); } - fst->st_mode = from_wire_mode(mode); +#if _S_IFLNK != 0120000 + if ((mode & (_S_IFMT)) == 0120000) + mode = (mode & ~(_S_IFMT)) | _S_IFLNK; +#endif + fst->st_mode = mode; + fst->st_rdev = MAKEDEV(rdev_major, rdev_minor); fst->st_uid = uid; fst->st_gid = gid;