Introduced generic ACL-EA-system adapter aaip-os-dummy.c
which steps in at compile time if neither __FreeBSD__ nor __linux is defined.
This commit is contained in:
parent
6dee6e4c20
commit
9f60c75f08
@ -214,6 +214,7 @@ EXTRA_DIST = \
|
||||
ChangeLog \
|
||||
Roadmap \
|
||||
doc/susp_aaip_0_2.txt \
|
||||
libisofs/aaip-os-dummy.c \
|
||||
libisofs/aaip-os-linux.c \
|
||||
libisofs/aaip-os-freebsd.c
|
||||
|
||||
|
93
libisofs/aaip-os-dummy.c
Normal file
93
libisofs/aaip-os-dummy.c
Normal file
@ -0,0 +1,93 @@
|
||||
|
||||
/*
|
||||
|
||||
aaip-os-dummy.c
|
||||
|
||||
Idle placeholder for:
|
||||
Arbitrary Attribute Interchange Protocol , system adapter for getting and
|
||||
setting of ACLs and XFS-style Extended Attributes.
|
||||
|
||||
See aaip-os-linux.c for a real implementation of this interface.
|
||||
|
||||
To be included by aaip_0_2.c
|
||||
*/
|
||||
|
||||
#include <ctype.h>
|
||||
#include <sys/types.h>
|
||||
#include <unistd.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
|
||||
/* ------------------------------ Getters --------------------------------- */
|
||||
|
||||
/* Obtain the ACL of the given file in long text form.
|
||||
@return 0 ACL support not enabled at compile time
|
||||
*/
|
||||
int aaip_get_acl_text(char *path, char **text, int flag)
|
||||
{
|
||||
return(0);
|
||||
}
|
||||
|
||||
|
||||
/* Obtain the Extended Attributes and/or the ACLs of the given file in a form
|
||||
that is ready for aaip_encode().
|
||||
@return 1 ok
|
||||
*/
|
||||
int aaip_get_attr_list(char *path, size_t *num_attrs, char ***names,
|
||||
size_t **value_lengths, char ***values, int flag)
|
||||
{
|
||||
*num_attrs= 0;
|
||||
*names= NULL;
|
||||
*value_lengths= NULL;
|
||||
*values= NULL;
|
||||
return(1);
|
||||
}
|
||||
|
||||
|
||||
/* ------------------------------ Setters --------------------------------- */
|
||||
|
||||
|
||||
/* Set the ACL of the given file to a given list in long text form.
|
||||
@return 0 ACL support not enabled at compile time
|
||||
*/
|
||||
int aaip_set_acl_text(char *path, char *text, int flag)
|
||||
{
|
||||
return(0);
|
||||
}
|
||||
|
||||
|
||||
/* Bring the given attributes and/or ACLs into effect with the given file.
|
||||
@param flag Bitfield for control purposes
|
||||
bit0= decode and set ACLs
|
||||
bit1= first clear all existing attributes of the file
|
||||
bit2= do not set attributes other than ACLs
|
||||
@return 1 success (there was nothing to do)
|
||||
-6 support of xattr not enabled at compile time
|
||||
-7 support of ACL not enabled at compile time
|
||||
*/
|
||||
int aaip_set_attr_list(char *path, size_t num_attrs, char **names,
|
||||
size_t *value_lengths, char **values, int flag)
|
||||
{
|
||||
size_t i;
|
||||
|
||||
for(i= 0; i < num_attrs; i++) {
|
||||
if(names[i] == NULL || values[i] == NULL)
|
||||
continue;
|
||||
if(names[i][0] == 0) { /* ACLs */
|
||||
if(flag & 1)
|
||||
return(-7);
|
||||
continue;
|
||||
}
|
||||
/* Extended Attribute */
|
||||
if(!(flag & 4))
|
||||
return(-6);
|
||||
}
|
||||
if(flag & 2)
|
||||
return(-6);
|
||||
return(1);
|
||||
}
|
||||
|
||||
|
@ -2059,8 +2059,14 @@ ex:;
|
||||
#include "aaip-os-freebsd.c"
|
||||
|
||||
#else
|
||||
#ifdef __linux
|
||||
|
||||
#include "aaip-os-linux.c"
|
||||
|
||||
#endif
|
||||
#else
|
||||
|
||||
#include "aaip-os-dummy.c"
|
||||
|
||||
#endif /* ! __linux */
|
||||
#endif /* ! __FreeBSD__ */
|
||||
|
||||
|
@ -483,7 +483,8 @@ int aaip_set_acl_text(char *path, char *text, int flag);
|
||||
-3 error with setting ACL
|
||||
-4 error with setting attribute
|
||||
-5 error with deleting attributes
|
||||
|
||||
-6 support of xattr not enabled at compile time
|
||||
-7 support of ACL not enabled at compile time
|
||||
*/
|
||||
int aaip_set_attr_list(char *path, size_t num_attrs, char **names,
|
||||
size_t *value_lengths, char **values, int flag);
|
||||
|
@ -1631,7 +1631,7 @@ int iso_node_set_acl_text(IsoNode *node, char *acl_text, int flag)
|
||||
mode_t st_mode;
|
||||
|
||||
st_mode = iso_node_get_permissions(node);
|
||||
if (!(flag & 2)) { /* want to update ACL by st_mode */
|
||||
if (!(flag & 2)) { /* want not to update ACL by st_mode */
|
||||
|
||||
/* >>> validate and rectify text */;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user