Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 9 Aug 2008 17:19:08 GMT
From:      Edward Tomasz Napierala <trasz@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 146998 for review
Message-ID:  <200808091719.m79HJ892022731@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=146998

Change 146998 by trasz@trasz_traszkan on 2008/08/09 17:18:52

	1/10 of required tests.  Ugh.

Affected files ...

.. //depot/projects/soc2008/trasz_nfs4acl/tools/regression/fstest/Makefile#2 edit
.. //depot/projects/soc2008/trasz_nfs4acl/tools/regression/fstest/fstest.c#2 edit
.. //depot/projects/soc2008/trasz_nfs4acl/tools/regression/fstest/tests/granular/00.t#1 add
.. //depot/projects/soc2008/trasz_nfs4acl/tools/regression/fstest/tests/granular/01.t#1 add
.. //depot/projects/soc2008/trasz_nfs4acl/tools/regression/fstest/tests/granular/02.t#1 add
.. //depot/projects/soc2008/trasz_nfs4acl/tools/regression/fstest/tests/granular/03.t#1 add

Differences ...

==== //depot/projects/soc2008/trasz_nfs4acl/tools/regression/fstest/Makefile#2 (text+ko) ====

@@ -3,6 +3,7 @@
 CFLAGS+=-DHAS_LCHMOD
 CFLAGS+=-DHAS_CHFLAGS
 CFLAGS+=-DHAS_LCHFLAGS
+CFLAGS+=-DHAS_FREEBSD_ACL
 #CFLAGS+=-DHAS_TRUNCATE64
 #CFLAGS+=-DHAS_STAT64
 

==== //depot/projects/soc2008/trasz_nfs4acl/tools/regression/fstest/fstest.c#2 (text+ko) ====

@@ -45,6 +45,9 @@
 #define	stat64	stat
 #define	lstat64	lstat
 #endif
+#ifdef HAS_FREEBSD_ACL
+#include <sys/acl.h>
+#endif
 
 #ifndef ALLPERMS
 #define	ALLPERMS	(S_ISUID|S_ISGID|S_ISVTX|S_IRWXU|S_IRWXG|S_IRWXO)
@@ -75,6 +78,10 @@
 	ACTION_TRUNCATE,
 	ACTION_STAT,
 	ACTION_LSTAT,
+#ifdef HAS_FREEBSD_ACL
+	ACTION_PREPENDACL,
+	ACTION_READACL,
+#endif
 };
 
 #define	TYPE_NONE	0x0000
@@ -116,6 +123,10 @@
 	{ "truncate", ACTION_TRUNCATE, { TYPE_STRING, TYPE_NUMBER, TYPE_NONE } },
 	{ "stat", ACTION_STAT, { TYPE_STRING, TYPE_STRING, TYPE_NONE } },
 	{ "lstat", ACTION_LSTAT, { TYPE_STRING, TYPE_STRING, TYPE_NONE } },
+#ifdef HAS_FREEBSD_ACL
+	{ "prependacl", ACTION_PREPENDACL, { TYPE_STRING, TYPE_STRING, TYPE_NONE } },
+	{ "readacl", ACTION_READACL, { TYPE_STRING, TYPE_NONE } },
+#endif
 	{ NULL, -1, { TYPE_NONE } }
 };
 
@@ -362,6 +373,11 @@
 		char *str;
 		long long num;
 	} args[MAX_ARGS];
+#ifdef HAS_FREEBSD_ACL
+	int entry_id = ACL_FIRST_ENTRY;
+	acl_t acl, newacl;
+	acl_entry_t entry, newentry;
+#endif
 
 	/*
 	 * Verify correctness of the arguments.
@@ -484,6 +500,39 @@
 			return (i);
 		}
 		break;
+#ifdef HAS_FREEBSD_ACL
+	case ACTION_PREPENDACL:
+		rval = -1;
+
+		acl = acl_get_file(STR(0), ACL_TYPE_NFS4);
+		if (acl == NULL)
+			break;
+
+		newacl = acl_from_text(STR(1));
+		if (acl == NULL)
+			break;
+
+		while (acl_get_entry(newacl, entry_id, &newentry) == 1) {
+			entry_id = ACL_NEXT_ENTRY;
+
+			if (acl_create_entry_np(&acl, &entry, 0))
+				break;
+
+			if (acl_copy_entry(entry, newentry))
+				break;
+		}
+
+		rval = acl_set_file(STR(0), ACL_TYPE_NFS4, acl);
+		break;
+
+	case ACTION_READACL:
+		acl = acl_get_file(STR(0), ACL_TYPE_NFS4);
+		if (acl == NULL)
+			rval = -1;
+		else
+			rval = 0;
+		break;
+#endif
 	default:
 		fprintf(stderr, "unsupported syscall\n");
 		exit(1);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200808091719.m79HJ892022731>