fix a typo
[tprouty/samba.git] / source / include / smb_acls.h
index e7edb62bde2ca23e97cbacd8fef3b011bdff3966..0d2cbdde52cbfbea197b6a861c078555e39aa0f6 100644 (file)
 
 #ifndef _SMB_ACLS_H
 #define _SMB_ACLS_H
-#if defined(HAVE_POSIX_ACLS)
 
-/* This is an identity mapping (just remove the SMB_). */
-
-#define SMB_ACL_TAG_T               acl_tag_t
-#define SMB_ACL_TYPE_T                         acl_type_t
-#define SMB_ACL_PERMSET_T           acl_permset_t
-#define SMB_ACL_PERM_T                         acl_perm_t
-#define SMB_ACL_READ                ACL_READ
-#define SMB_ACL_WRITE               ACL_WRITE
-#define SMB_ACL_EXECUTE             ACL_EXECUTE
-
-/* Types of ACLs. */
-#define SMB_ACL_USER                ACL_USER
-#define SMB_ACL_USER_OBJ            ACL_USER_OBJ
-#define SMB_ACL_GROUP               ACL_GROUP
-#define SMB_ACL_GROUP_OBJ           ACL_GROUP_OBJ
-#define SMB_ACL_OTHER               ACL_OTHER
-#define SMB_ACL_MASK                ACL_MASK
-
-#define SMB_ACL_T                                      acl_t
-
-#define SMB_ACL_ENTRY_T                                acl_entry_t
-
-#define SMB_ACL_FIRST_ENTRY         ACL_FIRST_ENTRY
-#define SMB_ACL_NEXT_ENTRY          ACL_NEXT_ENTRY
-
-#define SMB_ACL_TYPE_ACCESS         ACL_TYPE_ACCESS
-#define SMB_ACL_TYPE_DEFAULT        ACL_TYPE_DEFAULT
-
-#elif defined(HAVE_TRU64_ACLS)
-
-/* This is for DEC/Compaq Tru64 UNIX */
-
-#define SMB_ACL_TAG_T               acl_tag_t
-#define SMB_ACL_TYPE_T                         acl_type_t
-#define SMB_ACL_PERMSET_T           acl_permset_t
-#define SMB_ACL_PERM_T                         acl_perm_t
-#define SMB_ACL_READ                ACL_READ
-#define SMB_ACL_WRITE               ACL_WRITE
-#define SMB_ACL_EXECUTE             ACL_EXECUTE
-
-/* Types of ACLs. */
-#define SMB_ACL_USER                ACL_USER
-#define SMB_ACL_USER_OBJ            ACL_USER_OBJ
-#define SMB_ACL_GROUP               ACL_GROUP
-#define SMB_ACL_GROUP_OBJ           ACL_GROUP_OBJ
-#define SMB_ACL_OTHER               ACL_OTHER
-#define SMB_ACL_MASK                ACL_MASK
-
-#define SMB_ACL_T                                      acl_t
-
-#define SMB_ACL_ENTRY_T                                acl_entry_t
-
-#define SMB_ACL_FIRST_ENTRY         0
-#define SMB_ACL_NEXT_ENTRY          1
-
-#define SMB_ACL_TYPE_ACCESS         ACL_TYPE_ACCESS
-#define SMB_ACL_TYPE_DEFAULT        ACL_TYPE_DEFAULT
-
-#elif defined(HAVE_UNIXWARE_ACLS) || defined(HAVE_SOLARIS_ACLS)
-/*
- * Donated by Michael Davidson <md@sco.COM> for UnixWare / OpenUNIX.
- * Modified by Toomas Soome <tsoome@ut.ee> for Solaris.
- */
-
-/* SVR4.2 ES/MP ACLs */
-typedef int                    SMB_ACL_TAG_T;
 typedef int                    SMB_ACL_TYPE_T;
-typedef ushort         *SMB_ACL_PERMSET_T;
-typedef ushort         SMB_ACL_PERM_T;
+typedef mode_t                 *SMB_ACL_PERMSET_T;
+typedef mode_t                 SMB_ACL_PERM_T;
 #define SMB_ACL_READ                           4
 #define SMB_ACL_WRITE                          2
 #define SMB_ACL_EXECUTE                                1
 
 /* Types of ACLs. */
-#define SMB_ACL_USER                           USER
-#define SMB_ACL_USER_OBJ                       USER_OBJ
-#define SMB_ACL_GROUP                          GROUP
-#define SMB_ACL_GROUP_OBJ                      GROUP_OBJ
-#define SMB_ACL_OTHER                          OTHER_OBJ
-#define SMB_ACL_MASK                           CLASS_OBJ
-
-typedef struct SMB_ACL_T {
-       int     size;
-       int     count;
-       int     next;
-       struct acl      acl[1];
-} *SMB_ACL_T;
-
-typedef struct acl                                     *SMB_ACL_ENTRY_T;
-
-#define SMB_ACL_FIRST_ENTRY                    0
-#define SMB_ACL_NEXT_ENTRY                     1
-
-#define SMB_ACL_TYPE_ACCESS                    0
-#define SMB_ACL_TYPE_DEFAULT           1
-
-#elif defined(HAVE_HPUX_ACLS)
-
-/*
- * Based on the Solaris & UnixWare code.
- */
-
-#undef GROUP
-#include <sys/aclv.h>
+enum smb_acl_tag_t {
+       SMB_ACL_TAG_INVALID=0,
+       SMB_ACL_USER=1,
+       SMB_ACL_USER_OBJ,
+       SMB_ACL_GROUP,
+       SMB_ACL_GROUP_OBJ,
+       SMB_ACL_OTHER,
+       SMB_ACL_MASK
+};
 
-/* SVR4.2 ES/MP ACLs */
-typedef int                    SMB_ACL_TAG_T;
-typedef int                    SMB_ACL_TYPE_T;
-typedef ushort         *SMB_ACL_PERMSET_T;
-typedef ushort         SMB_ACL_PERM_T;
-#define SMB_ACL_READ                           4
-#define SMB_ACL_WRITE                          2
-#define SMB_ACL_EXECUTE                                1
+typedef enum smb_acl_tag_t SMB_ACL_TAG_T;
 
-/* Types of ACLs. */
-#define SMB_ACL_USER                           USER
-#define SMB_ACL_USER_OBJ                       USER_OBJ
-#define SMB_ACL_GROUP                          GROUP
-#define SMB_ACL_GROUP_OBJ                      GROUP_OBJ
-#define SMB_ACL_OTHER                          OTHER_OBJ
-#define SMB_ACL_MASK                           CLASS_OBJ
+struct smb_acl_entry {
+       enum smb_acl_tag_t a_type;
+       SMB_ACL_PERM_T a_perm;
+       uid_t uid;
+       gid_t gid;
+};
 
-typedef struct SMB_ACL_T {
+typedef struct smb_acl_t {
        int     size;
        int     count;
        int     next;
-       struct acl      acl[1];
-} *SMB_ACL_T;
-
-typedef struct acl                                     *SMB_ACL_ENTRY_T;
-
-#define SMB_ACL_FIRST_ENTRY                    0
-#define SMB_ACL_NEXT_ENTRY                     1
-
-#define SMB_ACL_TYPE_ACCESS                    0
-#define SMB_ACL_TYPE_DEFAULT           1
-
-#elif defined(HAVE_IRIX_ACLS)
-
-#define SMB_ACL_TAG_T               acl_tag_t
-#define SMB_ACL_TYPE_T             acl_type_t
-#define SMB_ACL_PERMSET_T           acl_permset_t
-#define SMB_ACL_PERM_T             acl_perm_t
-#define SMB_ACL_READ                ACL_READ
-#define SMB_ACL_WRITE               ACL_WRITE
-#define SMB_ACL_EXECUTE             ACL_EXECUTE
-
-/* Types of ACLs. */
-#define SMB_ACL_USER                ACL_USER
-#define SMB_ACL_USER_OBJ            ACL_USER_OBJ
-#define SMB_ACL_GROUP               ACL_GROUP
-#define SMB_ACL_GROUP_OBJ           ACL_GROUP_OBJ
-#define SMB_ACL_OTHER               ACL_OTHER_OBJ
-#define SMB_ACL_MASK                ACL_MASK
-
-typedef struct SMB_ACL_T {
-   int next;
-   BOOL freeaclp;
-   struct acl  *aclp;
-} *SMB_ACL_T;
-
-#define SMB_ACL_ENTRY_T                    acl_entry_t
-
-#define SMB_ACL_FIRST_ENTRY         0
-#define SMB_ACL_NEXT_ENTRY          1
-
-#define SMB_ACL_TYPE_ACCESS         ACL_TYPE_ACCESS
-#define SMB_ACL_TYPE_DEFAULT        ACL_TYPE_DEFAULT
-
-#elif defined(HAVE_AIX_ACLS)
-
-/* Donated by Medha Date, mdate@austin.ibm.com, for IBM */
-
-#include "/usr/include/acl.h"
-
-typedef uint                        *SMB_ACL_PERMSET_T;
-struct acl_entry_link{
-       struct acl_entry_link *prevp;
-       struct new_acl_entry *entryp;
-       struct acl_entry_link *nextp;
-       int count;
-};
-
-struct new_acl_entry{
-       unsigned short  ace_len;
-       unsigned short  ace_type;
-       unsigned int    ace_access;
-       struct ace_id ace_id[1];
-};
-
-#define SMB_ACL_ENTRY_T             struct new_acl_entry*
-#define SMB_ACL_T                   struct acl_entry_link*
-#define SMB_ACL_TAG_T               unsigned short
-#define SMB_ACL_TYPE_T              int
-#define SMB_ACL_PERM_T              uint
-#define SMB_ACL_READ                S_IRUSR
-#define SMB_ACL_WRITE               S_IWUSR
-#define SMB_ACL_EXECUTE             S_IXUSR
-
-/* Types of ACLs. */
-#define SMB_ACL_USER                ACEID_USER
-#define SMB_ACL_USER_OBJ            3
-#define SMB_ACL_GROUP               ACEID_GROUP
-#define SMB_ACL_GROUP_OBJ           4
-#define SMB_ACL_OTHER               5
-#define SMB_ACL_MASK                6
-
-
-#define SMB_ACL_FIRST_ENTRY         1
-#define SMB_ACL_NEXT_ENTRY          2
-
-#define SMB_ACL_TYPE_ACCESS         0
-#define SMB_ACL_TYPE_DEFAULT        1
-
-#else /* No ACLs. */
-
-/* No ACLS - fake it. */
-#define SMB_ACL_TAG_T                          int
-#define SMB_ACL_TYPE_T              int
-#define SMB_ACL_PERMSET_T                      mode_t
-#define SMB_ACL_PERM_T                         mode_t
-#define SMB_ACL_READ                           S_IRUSR
-#define SMB_ACL_WRITE                          S_IWUSR
-#define SMB_ACL_EXECUTE                                S_IXUSR
-
-/* Types of ACLs. */
-#define SMB_ACL_USER                           0
-#define SMB_ACL_USER_OBJ                       1
-#define SMB_ACL_GROUP                          2
-#define SMB_ACL_GROUP_OBJ                      3
-#define SMB_ACL_OTHER                          4
-#define SMB_ACL_MASK                           5
-
-typedef struct SMB_ACL_T {
-       int dummy;
+       struct smb_acl_entry acl[1];
 } *SMB_ACL_T;
 
-typedef struct SMB_ACL_ENTRY_T {
-       int dummy;
-} *SMB_ACL_ENTRY_T;
+typedef struct smb_acl_entry   *SMB_ACL_ENTRY_T;
 
 #define SMB_ACL_FIRST_ENTRY                    0
 #define SMB_ACL_NEXT_ENTRY                     1
@@ -271,5 +63,4 @@ typedef struct SMB_ACL_ENTRY_T {
 #define SMB_ACL_TYPE_ACCESS                    0
 #define SMB_ACL_TYPE_DEFAULT           1
 
-#endif /* No ACLs. */
 #endif /* _SMB_ACLS_H */