summaryrefslogtreecommitdiffstats
path: root/sys/fs/nfs/nfs_commonacl.c
diff options
context:
space:
mode:
authortrasz <trasz@FreeBSD.org>2009-12-03 18:03:42 +0000
committertrasz <trasz@FreeBSD.org>2009-12-03 18:03:42 +0000
commit67e0aa531b4a62a46d834a1f9cccbe5d5a5e3068 (patch)
treeca32c6a81857a7578be9e5c5260b6c31b0b18b3e /sys/fs/nfs/nfs_commonacl.c
parenta157bbdc97bff390c7ec3d16830936c17a65aefb (diff)
downloadFreeBSD-src-67e0aa531b4a62a46d834a1f9cccbe5d5a5e3068.zip
FreeBSD-src-67e0aa531b4a62a46d834a1f9cccbe5d5a5e3068.tar.gz
Remove unneeded ifdefs.
Reviewed by: rmacklem
Diffstat (limited to 'sys/fs/nfs/nfs_commonacl.c')
-rw-r--r--sys/fs/nfs/nfs_commonacl.c185
1 files changed, 0 insertions, 185 deletions
diff --git a/sys/fs/nfs/nfs_commonacl.c b/sys/fs/nfs/nfs_commonacl.c
index 0ac1590..d639cfc 100644
--- a/sys/fs/nfs/nfs_commonacl.c
+++ b/sys/fs/nfs/nfs_commonacl.c
@@ -37,7 +37,6 @@ extern int nfsrv_useacl;
static int nfsrv_acemasktoperm(u_int32_t acetype, u_int32_t mask, int owner,
enum vtype type, acl_perm_t *permp);
-#if defined(NFS4_ACL_EXTATTR_NAME)
/*
* Handle xdr for an ace.
*/
@@ -263,189 +262,7 @@ nfsrv_acemasktoperm(u_int32_t acetype, u_int32_t mask, int owner,
*permp = perm;
return (0);
}
-#else
-/*
- * Handle xdr for an ace.
- */
-APPLESTATIC int
-nfsrv_dissectace(struct nfsrv_descript *nd, struct acl_entry *acep,
- int *aceerrp, int *acesizep, NFSPROC_T *p)
-{
- u_int32_t *tl;
- int len, gotid = 0, owner = 0, error = 0, aceerr = 0;
- u_char *name, namestr[NFSV4_SMALLSTR + 1];
- u_int32_t flag, mask, acetype;
- gid_t gid;
- uid_t uid;
-
- *aceerrp = 0;
- NFSM_DISSECT(tl, u_int32_t *, 4 * NFSX_UNSIGNED);
- acetype = fxdr_unsigned(u_int32_t, *tl++);
- flag = fxdr_unsigned(u_int32_t, *tl++);
- mask = fxdr_unsigned(u_int32_t, *tl++);
- len = fxdr_unsigned(int, *tl);
- if (len < 0) {
- return (NFSERR_BADXDR);
- } else if (len == 0) {
- /* Netapp filers return a 0 length who for nil users */
- acep->ae_tag = ACL_UNDEFINED_TAG;
- acep->ae_id = ACL_UNDEFINED_ID;
- acep->ae_perm = (acl_perm_t)0;
- if (acesizep)
- *acesizep = 4 * NFSX_UNSIGNED;
- return (0);
- }
- if (len > NFSV4_SMALLSTR)
- name = malloc(len + 1, M_NFSSTRING, M_WAITOK);
- else
- name = namestr;
- error = nfsrv_mtostr(nd, name, len);
- if (error) {
- if (len > NFSV4_SMALLSTR)
- free(name, M_NFSSTRING);
- return (error);
- }
- if (len == 6) {
- if (!NFSBCMP(name, "OWNER@", 6)) {
- acep->ae_tag = ACL_USER_OBJ;
- acep->ae_id = ACL_UNDEFINED_ID;
- owner = 1;
- gotid = 1;
- } else if (!NFSBCMP(name, "GROUP@", 6)) {
- acep->ae_tag = ACL_GROUP_OBJ;
- acep->ae_id = ACL_UNDEFINED_ID;
- gotid = 1;
- flag &= ~NFSV4ACE_IDENTIFIERGROUP;
- }
- } else if (len == 9 && !NFSBCMP(name, "EVERYONE@", 9)) {
- acep->ae_tag = ACL_OTHER;
- acep->ae_id = ACL_UNDEFINED_ID;
- gotid = 1;
- }
- if (!gotid) {
- if (flag & NFSV4ACE_IDENTIFIERGROUP) {
- flag &= ~NFSV4ACE_IDENTIFIERGROUP;
- acep->ae_tag = ACL_GROUP;
- aceerr = nfsv4_strtogid(name, len, &gid, p);
- if (!aceerr)
- acep->ae_id = (uid_t)gid;
- } else {
- acep->ae_tag = ACL_USER;
- aceerr = nfsv4_strtouid(name, len, &uid, p);
- if (!aceerr)
- acep->ae_id = uid;
- }
- }
- if (len > NFSV4_SMALLSTR)
- free(name, M_NFSSTRING);
-
- /*
- * Now, check for unsupported types or flag bits.
- */
- if (!aceerr && ((acetype != NFSV4ACE_ALLOWEDTYPE &&
- acetype != NFSV4ACE_AUDITTYPE && acetype != NFSV4ACE_ALARMTYPE
- && acetype != NFSV4ACE_DENIEDTYPE) || flag))
- aceerr = NFSERR_ATTRNOTSUPP;
-
- /*
- * And turn the mask into perm bits.
- */
- if (!aceerr)
- aceerr = nfsrv_acemasktoperm(acetype, mask, owner, VREG,
- &acep->ae_perm);
- *aceerrp = aceerr;
- if (acesizep)
- *acesizep = NFSM_RNDUP(len) + (4 * NFSX_UNSIGNED);
- return (0);
-nfsmout:
- return (error);
-}
-
-/*
- * Turn an NFSv4 ace mask into R/W/X flag bits.
- */
-static int
-nfsrv_acemasktoperm(u_int32_t acetype, u_int32_t mask, int owner,
- enum vtype type, acl_perm_t *permp)
-{
- acl_perm_t perm = 0x0;
-
- if (acetype != NFSV4ACE_ALLOWEDTYPE && acetype != NFSV4ACE_DENIEDTYPE){
- if (mask & ~NFSV4ACE_AUDITMASK)
- return (NFSERR_ATTRNOTSUPP);
- }
- if (mask & NFSV4ACE_DELETE) {
- return (NFSERR_ATTRNOTSUPP);
- }
- if (acetype == NFSV4ACE_DENIEDTYPE) {
- if (mask & NFSV4ACE_ALLFILESMASK) {
- return (NFSERR_ATTRNOTSUPP);
- }
- if (owner) {
- if (mask & NFSV4ACE_OWNERMASK) {
- return (NFSERR_ATTRNOTSUPP);
- }
- } else {
- if ((mask & NFSV4ACE_OWNERMASK) != NFSV4ACE_OWNERMASK) {
- return (NFSERR_ATTRNOTSUPP);
- }
- mask &= ~NFSV4ACE_OWNERMASK;
- }
- } else if (acetype == NFSV4ACE_ALLOWEDTYPE) {
- if ((mask & NFSV4ACE_ALLFILESMASK) != NFSV4ACE_ALLFILESMASK) {
- return (NFSERR_ATTRNOTSUPP);
- }
- mask &= ~NFSV4ACE_ALLFILESMASK;
- if (owner) {
- if ((mask & NFSV4ACE_OWNERMASK) != NFSV4ACE_OWNERMASK) {
- return (NFSERR_ATTRNOTSUPP);
- }
- mask &= ~NFSV4ACE_OWNERMASK;
- } else if (mask & NFSV4ACE_OWNERMASK) {
- return (NFSERR_ATTRNOTSUPP);
- }
- }
- if (type == VDIR) {
- if ((mask & NFSV4ACE_DIRREADMASK) == NFSV4ACE_DIRREADMASK) {
- perm |= ACL_READ;
- mask &= ~NFSV4ACE_DIRREADMASK;
- }
- if ((mask & NFSV4ACE_DIRWRITEMASK) == NFSV4ACE_DIRWRITEMASK) {
- perm |= ACL_WRITE;
- mask &= ~NFSV4ACE_DIRWRITEMASK;
- }
- if ((mask & NFSV4ACE_DIREXECUTEMASK)==NFSV4ACE_DIREXECUTEMASK){
- perm |= ACL_EXECUTE;
- mask &= ~NFSV4ACE_DIREXECUTEMASK;
- }
- } else {
- if (acetype == NFSV4ACE_DENIEDTYPE &&
- (mask & NFSV4ACE_SYNCHRONIZE)) {
- return (NFSERR_ATTRNOTSUPP);
- }
- mask &= ~(NFSV4ACE_SYNCHRONIZE | NFSV4ACE_DELETECHILD);
- if ((mask & NFSV4ACE_READMASK) == NFSV4ACE_READMASK) {
- perm |= ACL_READ;
- mask &= ~NFSV4ACE_READMASK;
- }
- if ((mask & NFSV4ACE_WRITEMASK) == NFSV4ACE_WRITEMASK) {
- perm |= ACL_WRITE;
- mask &= ~NFSV4ACE_WRITEMASK;
- }
- if ((mask & NFSV4ACE_EXECUTEMASK) == NFSV4ACE_EXECUTEMASK) {
- perm |= ACL_EXECUTE;
- mask &= ~NFSV4ACE_EXECUTEMASK;
- }
- }
- if (mask) {
- return (NFSERR_ATTRNOTSUPP);
- }
- *permp = perm;
- return (0);
-}
-#endif /* !NFS4_ACL_EXTATTR_NAME */
-#ifdef NFS4_ACL_EXTATTR_NAME
/* local functions */
static int nfsrv_buildace(struct nfsrv_descript *, u_char *, int,
enum vtype, int, int, struct acl_entry *);
@@ -742,5 +559,3 @@ nfsrv_compareacl(NFSACL_T *aclp1, NFSACL_T *aclp2)
}
return (0);
}
-
-#endif /* NFS4_ACL_EXTATTR_NAME */
OpenPOWER on IntegriCloud