changeset 10173:33543159ba5b

Don't test the ACL_TYPE_DEFAULT ACL on OSF/1.
author Bruno Haible <bruno@clisp.org>
date Sun, 08 Jun 2008 05:08:56 +0200
parents 50e666f281ef
children 365aea8acb14
files ChangeLog lib/file-has-acl.c
diffstat 2 files changed, 17 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2008-06-07  Bruno Haible  <bruno@clisp.org>
+
+	Improve support for Tru64 ACLs.
+	* lib/file-has-acl.c (file_has_acl): Don't test the ACL_TYPE_DEFAULT
+	ACL on OSF/1.
+
 2008-06-07  Bruno Haible  <bruno@clisp.org>
 
 	Add support for MacOS X ACLs.
--- a/lib/file-has-acl.c
+++ b/lib/file-has-acl.c
@@ -159,6 +159,16 @@
 	      saved_errno = errno;
 	      acl_free (acl);
 	      errno = saved_errno;
+#   if HAVE_ACL_FREE_TEXT /* Tru64 */
+	      /* On OSF/1, acl_get_file (name, ACL_TYPE_DEFAULT) always
+		 returns NULL with errno not set.  There is no point in
+		 making this call.  */
+#   else /* FreeBSD, IRIX */
+	      /* On Linux, FreeBSD, IRIX, acl_get_file (name, ACL_TYPE_ACCESS)
+		 and acl_get_file (name, ACL_TYPE_DEFAULT) on a directory
+		 either both succeed or both fail; it depends on the
+		 filesystem.  Therefore there is no point in making the second
+		 call if the first one already failed.  */
 	      if (ret == 0 && S_ISDIR (sb->st_mode))
 		{
 		  acl = acl_get_file (name, ACL_TYPE_DEFAULT);
@@ -170,6 +180,7 @@
 		  else
 		    ret = -1;
 		}
+#   endif
 	    }
 	  else
 	    ret = -1;