1/* 2 Copyright (c) 2009 Frank Lahm <franklahm@gmail.com> 3 4 This program is free software; you can redistribute it and/or modify 5 it under the terms of the GNU General Public License as published by 6 the Free Software Foundation; either version 2 of the License, or 7 (at your option) any later version. 8 9 This program is distributed in the hope that it will be useful, 10 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 GNU General Public License for more details. 13*/ 14 15#ifndef ATALK_ACL_H 16#define ATALK_ACL_H 17 18#ifdef HAVE_CONFIG_H 19#include "config.h" 20#endif /* HAVE_CONFIG_H */ 21 22#ifdef HAVE_ACLS 23 24#define O_NETATALK_ACL (O_NOFOLLOW << 1) 25 26#ifdef HAVE_SOLARIS_ACLS 27#include <sys/acl.h> 28 29#define chmod_acl nfsv4_chmod 30 31extern int get_nfsv4_acl(const char *name, ace_t **retAces); 32extern int strip_trivial_aces(ace_t **saces, int sacecount); 33extern int strip_nontrivial_aces(ace_t **saces, int sacecount); 34extern ace_t *concat_aces(ace_t *aces1, int ace1count, ace_t *aces2, int ace2count); 35extern int nfsv4_chmod(char *name, mode_t mode); 36 37#endif /* HAVE_SOLARIS_ACLS */ 38 39#ifdef HAVE_POSIX_ACLS 40#include <sys/types.h> 41#include <sys/stat.h> 42#include <sys/acl.h> 43 44#define chmod_acl posix_chmod 45#define fchmod_acl posix_fchmod 46 47extern int posix_chmod(const char *name, mode_t mode); 48extern int posix_fchmod(int fd, mode_t mode); 49 50#endif /* HAVE_POSIX_ACLS */ 51 52extern int remove_acl_vfs(const char *name); 53 54#else /* HAVE_ACLS=no */ 55 56#define O_NETATALK_ACL 57#define chmod_acl chmod 58 59#endif /* HAVE_ACLS */ 60 61#endif /* ATALK_ACL_H */ 62