diff options
author | Jeremy Allison <jra@samba.org> | 2002-03-12 00:08:08 +0000 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2002-03-12 00:08:08 +0000 |
commit | 3bb219161a270f12c27c3bc7e1220829c6e9f284 (patch) | |
tree | 9fba9da3c3cf29d4a3a4c7fe8c26155d069cb96e /source3/include | |
parent | 6a5adf3051ed756ba627eca36ab6655465909ee7 (diff) | |
download | samba-3bb219161a270f12c27c3bc7e1220829c6e9f284.tar.gz samba-3bb219161a270f12c27c3bc7e1220829c6e9f284.tar.bz2 samba-3bb219161a270f12c27c3bc7e1220829c6e9f284.zip |
Added POSIX ACL layer into the vfs.
Jeremy.
(This used to be commit 7d59445b6962547a8938928a9371651a09e26516)
Diffstat (limited to 'source3/include')
-rw-r--r-- | source3/include/smb.h | 2 | ||||
-rw-r--r-- | source3/include/vfs.h | 27 |
2 files changed, 26 insertions, 3 deletions
diff --git a/source3/include/smb.h b/source3/include/smb.h index f626394845..1b6e280a4a 100644 --- a/source3/include/smb.h +++ b/source3/include/smb.h @@ -427,6 +427,7 @@ typedef struct /* Include VFS stuff */ +#include "smb_acls.h" #include "vfs.h" typedef struct connection_struct @@ -1640,7 +1641,6 @@ struct unix_error_map { #define SAFE_NETBIOS_CHARS ". -_" #include "nsswitch/winbindd_nss.h" -#include "smb_acls.h" /* generic iconv conversion structure */ typedef struct { diff --git a/source3/include/vfs.h b/source3/include/vfs.h index 58b5f0d396..da601b937b 100644 --- a/source3/include/vfs.h +++ b/source3/include/vfs.h @@ -39,7 +39,8 @@ */ /* Changed to version 2 for CIFS UNIX extensions (mknod and link added). JRA. */ -#define SMB_VFS_INTERFACE_VERSION 2 +/* Changed to version 3 for POSIX acl extensions. JRA. */ +#define SMB_VFS_INTERFACE_VERSION 3 /* VFS operations structure */ @@ -102,7 +103,29 @@ struct vfs_ops { int (*chmod_acl)(struct connection_struct *conn, const char *name, mode_t mode); int (*fchmod_acl)(struct files_struct *fsp, int fd, mode_t mode); - + + int (*sys_acl_get_entry)(struct connection_struct *conn, SMB_ACL_T theacl, int entry_id, SMB_ACL_ENTRY_T *entry_p); + int (*sys_acl_get_tag_type)(struct connection_struct *conn, SMB_ACL_ENTRY_T entry_d, SMB_ACL_TAG_T *tag_type_p); + int (*sys_acl_get_permset)(struct connection_struct *conn, SMB_ACL_ENTRY_T entry_d, SMB_ACL_PERMSET_T *permset_p); + void * (*sys_acl_get_qualifier)(struct connection_struct *conn, SMB_ACL_ENTRY_T entry_d); + SMB_ACL_T (*sys_acl_get_file)(struct connection_struct *conn, const char *path_p, SMB_ACL_TYPE_T type); + SMB_ACL_T (*sys_acl_get_fd)(struct files_struct *fsp, int fd); + int (*sys_acl_clear_perms)(struct connection_struct *conn, SMB_ACL_PERMSET_T permset); + int (*sys_acl_add_perm)(struct connection_struct *conn, SMB_ACL_PERMSET_T permset, SMB_ACL_PERM_T perm); + char * (*sys_acl_to_text)(struct connection_struct *conn, SMB_ACL_T theacl, ssize_t *plen); + SMB_ACL_T (*sys_acl_init)(struct connection_struct *conn, int count); + int (*sys_acl_create_entry)(struct connection_struct *conn, SMB_ACL_T *pacl, SMB_ACL_ENTRY_T *pentry); + int (*sys_acl_set_tag_type)(struct connection_struct *conn, SMB_ACL_ENTRY_T entry, SMB_ACL_TAG_T tagtype); + int (*sys_acl_set_qualifier)(struct connection_struct *conn, SMB_ACL_ENTRY_T entry, void *qual); + int (*sys_acl_set_permset)(struct connection_struct *conn, SMB_ACL_ENTRY_T entry, SMB_ACL_PERMSET_T permset); + int (*sys_acl_valid)(struct connection_struct *conn, SMB_ACL_T theacl ); + int (*sys_acl_set_file)(struct connection_struct *conn, const char *name, SMB_ACL_TYPE_T acltype, SMB_ACL_T theacl); + int (*sys_acl_set_fd)(struct files_struct *fsp, int fd, SMB_ACL_T theacl); + int (*sys_acl_delete_def_file)(struct connection_struct *conn, const char *path); + int (*sys_acl_get_perm)(struct connection_struct *conn, SMB_ACL_PERMSET_T permset, SMB_ACL_PERM_T perm); + int (*sys_acl_free_text)(struct connection_struct *conn, char *text); + int (*sys_acl_free_acl)(struct connection_struct *conn, SMB_ACL_T posix_acl); + int (*sys_acl_free_qualifier)(struct connection_struct *conn, void *qualifier, SMB_ACL_TAG_T tagtype); }; struct vfs_options { |