From aafdf30f7a7b1abfc175039a95657fd60e9ec9b6 Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Fri, 14 Jan 2005 22:03:40 +0000 Subject: * fhandler_disk_file.cc (fhandler_disk_file::facl): Pretend successful SETACL if no acls are available. * fhandler.cc (fhandler_base::facl): Implement to return sensible values on GETACL and GETACLCNT. Pretend successful SETACL. * fhandler_virtual.cc (fhandler_virtual::facl): Ditto. --- winsup/cygwin/fhandler_virtual.cc | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'winsup/cygwin/fhandler_virtual.cc') diff --git a/winsup/cygwin/fhandler_virtual.cc b/winsup/cygwin/fhandler_virtual.cc index fa3d2ed2e..859455994 100644 --- a/winsup/cygwin/fhandler_virtual.cc +++ b/winsup/cygwin/fhandler_virtual.cc @@ -247,7 +247,12 @@ fhandler_virtual::fchown (__uid32_t uid, __gid32_t gid) int fhandler_virtual::facl (int cmd, int nentries, __aclent32_t *aclbufp) { - /* Same as on Linux. */ - set_errno (EPERM); - return -1; + int res = fhandler_base::facl (cmd, nentries, aclbufp); + if (res >= 0 && cmd == GETACL) + { + aclbufp[0].a_perm = (S_IRUSR | (pc.isdir () ? S_IXUSR : 0)) >> 6; + aclbufp[1].a_perm = (S_IRGRP | (pc.isdir () ? S_IXGRP : 0)) >> 3; + aclbufp[2].a_perm = S_IROTH | (pc.isdir () ? S_IXOTH : 0); + } + return res; } -- cgit v1.2.3