From 9740f34d11c458fd7a07a025810422a6db1ad374 Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Tue, 31 Oct 2006 11:40:47 +0000 Subject: * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Drop directory attribute for reparse points to avoid mistreating. (fhandler_base::fstat_by_name): Ditto. * path.cc (symlink_info::check_reparse_point): New method testing reparse points for symbolic links. (symlink_info::check_shortcut): Move file attribute tesat to calling function. (symlink_info::check): Add handling for reparse points. * path.h (enum path_types): Add PATH_REP to denote reparse point based symlinks. (path_conv::is_rep_symlink): New method. * syscalls.cc (unlink): Handle reparse points. --- winsup/cygwin/path.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'winsup/cygwin/path.h') diff --git a/winsup/cygwin/path.h b/winsup/cygwin/path.h index b00adc76d..0b2decc0d 100644 --- a/winsup/cygwin/path.h +++ b/winsup/cygwin/path.h @@ -76,6 +76,7 @@ enum path_types PATH_NO_ACCESS_CHECK = PC_NO_ACCESS_CHECK, PATH_LNK = 0x01000000, PATH_TEXT = 0x02000000, + PATH_REP = 0x04000000, PATH_HAS_SYMLINKS = 0x10000000, PATH_SOCKET = 0x40000000 }; @@ -163,6 +164,7 @@ class path_conv } int issymlink () const {return path_flags & PATH_SYMLINK;} int is_lnk_symlink () const {return path_flags & PATH_LNK;} + int is_rep_symlink () const {return path_flags & PATH_REP;} int isdevice () const {return dev.devn && dev.devn != FH_FS && dev.devn != FH_FIFO;} int isfifo () const {return dev == FH_FIFO;} int isspecial () const {return dev.devn && dev.devn != FH_FS;} -- cgit v1.2.3