|
Packit |
b0b924 |
/*
|
|
Packit |
b0b924 |
* NFSv4 ACL Code
|
|
Packit |
b0b924 |
* Copyright (c) 2006 The Regents of the University of Michigan.
|
|
Packit |
b0b924 |
* All rights reserved.
|
|
Packit |
b0b924 |
*
|
|
Packit |
b0b924 |
* David M. Richter <richterd@citi.umich.edu>
|
|
Packit |
b0b924 |
*
|
|
Packit |
b0b924 |
* Redistribution and use in source and binary forms, with or without
|
|
Packit |
b0b924 |
* modification, are permitted provided that the following conditions
|
|
Packit |
b0b924 |
* are met:
|
|
Packit |
b0b924 |
*
|
|
Packit |
b0b924 |
* 1. Redistributions of source code must retain the above copyright
|
|
Packit |
b0b924 |
* notice, this list of conditions and the following disclaimer.
|
|
Packit |
b0b924 |
* 2. Redistributions in binary form must reproduce the above copyright
|
|
Packit |
b0b924 |
* notice, this list of conditions and the following disclaimer in the
|
|
Packit |
b0b924 |
* documentation and/or other materials provided with the distribution.
|
|
Packit |
b0b924 |
* 3. Neither the name of the University nor the names of its
|
|
Packit |
b0b924 |
* contributors may be used to endorse or promote products derived
|
|
Packit |
b0b924 |
* from this software without specific prior written permission.
|
|
Packit |
b0b924 |
*
|
|
Packit |
b0b924 |
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
|
Packit |
b0b924 |
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
|
Packit |
b0b924 |
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
Packit |
b0b924 |
* DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
|
Packit |
b0b924 |
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
Packit |
b0b924 |
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
Packit |
b0b924 |
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
|
Packit |
b0b924 |
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
Packit |
b0b924 |
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
Packit |
b0b924 |
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
Packit |
b0b924 |
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
Packit |
b0b924 |
*/
|
|
Packit |
b0b924 |
|
|
Packit |
b0b924 |
#include "libacl_nfs4.h"
|
|
Packit |
b0b924 |
|
|
Packit |
b0b924 |
/* "buf" must be at least 16 bytes */
|
|
Packit |
b0b924 |
char* nfs4_get_ace_flags(struct nfs4_ace *ace, char *buf)
|
|
Packit |
b0b924 |
{
|
|
Packit |
b0b924 |
int flags = ace->flag;
|
|
Packit |
b0b924 |
char *bp = buf;
|
|
Packit |
b0b924 |
|
|
Packit |
b0b924 |
if (flags & NFS4_ACE_FILE_INHERIT_ACE)
|
|
Packit |
b0b924 |
*buf++ = FLAG_FILE_INHERIT;
|
|
Packit |
b0b924 |
if (flags & NFS4_ACE_DIRECTORY_INHERIT_ACE)
|
|
Packit |
b0b924 |
*buf++ = FLAG_DIR_INHERIT;
|
|
Packit |
b0b924 |
if (flags & NFS4_ACE_NO_PROPAGATE_INHERIT_ACE)
|
|
Packit |
b0b924 |
*buf++ = FLAG_NO_PROPAGATE_INHERIT;
|
|
Packit |
b0b924 |
if (flags & NFS4_ACE_INHERIT_ONLY_ACE)
|
|
Packit |
b0b924 |
*buf++ = FLAG_INHERIT_ONLY;
|
|
Packit |
b0b924 |
if (flags & NFS4_ACE_SUCCESSFUL_ACCESS_ACE_FLAG)
|
|
Packit |
b0b924 |
*buf++ = FLAG_SUCCESSFUL_ACCESS;
|
|
Packit |
b0b924 |
if (flags & NFS4_ACE_FAILED_ACCESS_ACE_FLAG)
|
|
Packit |
b0b924 |
*buf++ = FLAG_FAILED_ACCESS;;
|
|
Packit |
b0b924 |
if (flags & NFS4_ACE_IDENTIFIER_GROUP)
|
|
Packit |
b0b924 |
*buf++ = FLAG_GROUP;
|
|
Packit Service |
39b1a3 |
if (flags & NFS4_ACE_OWNER)
|
|
Packit Service |
39b1a3 |
*buf++ = FLAG_OWNER_AT;
|
|
Packit Service |
39b1a3 |
if (flags & NFS4_ACE_GROUP)
|
|
Packit Service |
39b1a3 |
*buf++ = FLAG_GROUP_AT;
|
|
Packit Service |
39b1a3 |
if (flags & NFS4_ACE_EVERYONE)
|
|
Packit Service |
39b1a3 |
*buf++ = FLAG_EVERYONE_AT;
|
|
Packit |
b0b924 |
*buf = '\0';
|
|
Packit |
b0b924 |
|
|
Packit |
b0b924 |
return bp;
|
|
Packit |
b0b924 |
}
|