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>