ent_acl_manipulate_apply
This remote procedure call (RPC) propagates changes to ACLs based on a list
of operations passed in by the caller. The operations add, update, and
delete entries contained in each ACL. Change list processing is performed
on the specified directory and all files contained within the directory.
Also, ent_acl_manipulate_apply() optionally applies the process to
all subtrees contained beneath the specified directory.
#include <dsserr.h>#include <apply.h>
ent_acl_manipulate_apply(handle, resource_name, sec_acl_type,
change_list, tolerance,
recursion, max_errors,
error_buffer[ ],
num_errors, *status);
Parameters
See Common Parameter Definitions
for descriptions of parameters not defined here.
handle
(handle_t) RPC binding handle. Usually
obtained by a call to rpc_ns_binding_import_next().
resource_name
(unsigned_char_p_t) points to a NULL terminated
string specifying the name of the resource from where to start the apply
operation. The resource itself is included in the apply operation. The
resource must be a directory.
sec_acl_type
(sec_acl_type_t)
Specifies the ACL type. Container objects (directories) have three ACLs
associated with them: ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ SYMBOLIC CONSTANT ³ MEANING ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ sec_acl_type_object ³ The ACL on the directory itself. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ sec_acl_type_default_objec³ The initial ACL for any files created within
the ³
³ ³ directory. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ sec_acl_type_default_conta³nThe initial ACL for directories created within
³
³ ³ the container. ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
change_list
Points
to ent_entries_to_manipulate_t type which essentially is a list of
sec_acl_entry_t with associated actions.
tolerance
(32-bit unsigned) specifies how to handle files
and directories that the caller does not have permission to change. ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ SYMBOLIC CONSTANT ³ MEANING ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ apply_tolerance_low ³ Halt the apply operation on the first ³
³ ³ DSS_AccessDenied error. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ apply_tolerance_med ³ If a DSS_AccessDenied error occurs, log the
³
³ ³ error in the error_buffer and continue proc- ³
³ ³ essing. ³
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ apply_tolerance_high ³ Objects that the caller does not have permission
³
³ ³ to change are skipped. No DSS_Access_Denied ³
³ ³ errors are returned. ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
recursion
(32-bit
unsigned) If TRUE, propagates the changes down the entire tree. If FALSE,
only resource_name and the files contained within resource_name
will be affected.
max_errors
(32-bit
unsigned) Maximum number of errors that can be returned in error_buffer
array.
error_buffer
(error_entry_t)
Buffer used to return errors during apply operation. The client is responsible
for calling rpc_sm_client_free() for each error returned to release
storage used by resource_name
num_errors
(32-bit unsigned) Number of errors returned
in error_buffer array.
status
(error_status_t)
A pointer to the status of the call.
For each object processed, the ACL that results from the manipulations
listed in change_list must have at least one entry that contains
the c permission bit or the change fails for that object.
Note: You must use the IDL Compiler to compile apply.idl to generate
the client-side stub for the RPC call. Then compile the stub and link
to the .obj file to resolve the external references.
[Back]
[Next]