ent_acl_replace_apply
ent_acl_replace_apply
This remote procedure call (RPC) propagates an access control list (ACL)
to the specified directory and all of the files contained within the directory.
Also, ent_acl_replace_apply() optionally propagates the ACL to
all subtrees contained beneath the specified directory.
#include <dsserr.h>#include <apply.h>
ent_acl_replace_apply (handle, resource_name, sec_acl_type,
*acl_to_apply, 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 to start the apply operation
from. 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 container itself. │
├───────────────────────────┼──────────────────────────────────────────────────┤
│ sec_acl_type_default_objec│ The initial ACL for any files created within
the │
│ │ container. │
├───────────────────────────┼──────────────────────────────────────────────────┤
│ sec_acl_type_default_conta│nThe initial ACL for directories created within
│
│ │ the container. │
└───────────────────────────┴──────────────────────────────────────────────────┘
acl_to_apply
(sec_acl_list_t)
the ACL to apply. The original ACL is replaced with this ACL.
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, propagate the ACL down the entire tree. If FALSE, only
resource_name and the files 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.
The acl_to_apply must contain at least one entry that specifies the
c permission bit.
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: NetAccessSetInfo or Net32AccessSetInfo]
[Next: ent_acl_manipulate_apply]