summaryrefslogtreecommitdiffstats
path: root/source/lib
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2000-12-19 18:41:51 +0000
committerJeremy Allison <jra@samba.org>2000-12-19 18:41:51 +0000
commit1a31b4eb082b23d60e3d9040b3c0110eef1f9385 (patch)
treeb5f85e2d8f30778a4459ac51ab821ed19b51e7af /source/lib
parenta83702c99f1ecd6e68f8c178b20823fce6d4c6c6 (diff)
downloadsamba-1a31b4eb082b23d60e3d9040b3c0110eef1f9385.tar.gz
samba-1a31b4eb082b23d60e3d9040b3c0110eef1f9385.tar.xz
samba-1a31b4eb082b23d60e3d9040b3c0110eef1f9385.zip
Split the one sys_acl_free call into sys_acl_free_TYPE calls, to allow
easier wrapping of non-POSIX ACL interfaces. Jeremy.
Diffstat (limited to 'source/lib')
-rw-r--r--source/lib/sysacls.c43
1 files changed, 32 insertions, 11 deletions
diff --git a/source/lib/sysacls.c b/source/lib/sysacls.c
index e2cf535d3e5..6f26ff8007b 100644
--- a/source/lib/sysacls.c
+++ b/source/lib/sysacls.c
@@ -36,7 +36,6 @@ extern int DEBUGLEVEL;
void *sys_acl_get_qualifier( SMB_ACL_ENTRY_T entry_d)
SMB_ACL_T sys_acl_get_file( const char *path_p, SMB_ACL_TYPE_T type)
SMB_ACL_T sys_acl_get_fd(int fd)
- int sys_acl_free( void *obj_p)
int sys_acl_clear_perms(SMB_ACL_PERMSET_T permset);
int sys_acl_add_perm( SMB_ACL_PERMSET_T permset, SMB_ACL_PERM_T perm);
char *sys_acl_to_text( SMB_ACL_T acl, ssize_t *plen)
@@ -45,6 +44,18 @@ extern int DEBUGLEVEL;
More POSIX braindamage.
int sys_acl_get_perm( SMB_ACL_PERMSET_T permset, SMB_ACL_PERM_T perm)
+
+ The generic POSIX free is the following call. We split this into
+ several different free functions as we may need to add tag info
+ to structures when emulating the POSIX interface.
+
+ int sys_acl_free( void *obj_p)
+
+ The calls we actually use are :
+
+ int sys_acl_free_text(char *text) - free acl_to_text
+ int sys_acl_free_acl(SMB_ACL_T posix_acl)
+
*/
#if defined(HAVE_POSIX_ACLS)
@@ -81,11 +92,6 @@ SMB_ACL_T sys_acl_get_fd(int fd)
return acl_get_fd(fd);
}
-int sys_acl_free( void *obj_p)
-{
- return acl_free(obj_p);
-}
-
int sys_acl_clear_perms(SMB_ACL_PERMSET_T permset)
{
return acl_clear_perms(permset);
@@ -106,6 +112,16 @@ char *sys_acl_to_text( SMB_ACL_T the_acl, ssize_t *plen)
return acl_to_text( the_acl, plen);
}
+int sys_acl_free_text(char *text)
+{
+ return acl_free(text);
+}
+
+int sys_acl_free_acl(SMB_ACL_T the_acl)
+{
+ return acl_free(the_acl);
+}
+
#elif defined(HAVE_SOLARIS_ACLS)
#elif defined(HAVE_IRIX_ACLS)
@@ -142,11 +158,6 @@ SMB_ACL_T sys_acl_get_fd(int fd)
return (SMB_ACL_T)NULL;
}
-int sys_acl_free( void *obj_p)
-{
- return -1;
-}
-
int sys_acl_clear_perms(SMB_ACL_PERMSET_T permset)
{
return -1;
@@ -166,4 +177,14 @@ char *sys_acl_to_text( SMB_ACL_T the_acl, ssize_t *plen)
{
return NULL;
}
+
+int sys_acl_free_text(char *text)
+{
+ return -1;
+}
+
+int sys_acl_free_acl(SMB_ACL_T the_acl)
+{
+ return -1;
+}
#endif /* No ACLs. */