PreviousNext

sec_attr_trig_update(3sec)

For attributes coded with an attribute trigger type of update, passes attribute updates to an update attribute trigger server for evaluation

Synopsis

#include <dce/sec_attr_trig.h>

void sec_attr_trig_update (
handle_t h,
sec_attr_component_name_t cell_name,
sec_attr_component_name_t component_name,

unsigned32 num_to_write,
unsigned32 space_avail,
sec_attr_t in_attrs[ ],
unsigned32 *num_returned,
sec_attr_t out_attrs[ ],
unsigned32 *num_left,
signed32 *failure_index,
error_status_t *status);

Parameters

Input

h
A handle referring to the trigger server to be accessed. Use the trigger binding information specified in the attribute encoding to acquire a bound handle.

cell_name
A value of sec_attr_component_name_t that identifies the cell in which the object whose attribute is to be accessed resides. Supply a NULL cell_name to specify the local cell (/.:).

component_name
A value of sec_attr_component_name_t that identifies the name of the object whose attribute is to be accessed. If cell_name specifies a foreign cell, component_name is interpreted as a UUID in string format since the caller of this interface knows only the UUID, not the name, of the foreign principal.

num_to_write
An unsigned 32-bit integer that specifies the number of elements in the in_attrs array. This integer must be greater than 0.

space_avail
An unsigned 32-bit integer that specifies the size of the out_attrs array.

in_attrs[ ]
An array of values of type sec_attr_t that specifies the attribute instances to be written. The size of in_attrs[ ] is determined by num_to_write.

Output

num_returned
A pointer to an unsigned 32-bit integer that specifies the number of attribute instances returned in the out_attrs[ ] array.

out_attrs[ ]
An array of values of type sec_attr_t. These values, supplied by the update attribute trigger server, are in a form suitable for storage in the registry database.

num_left
A pointer to an unsigned 32-bit integer that supplies the number of attributes that were found but not returned because of space constraints in the out_attrs[ ] buffer.

failure_index
In the event of an error, failure_index is a pointer to the element in the in_attrs[ ] array that caused the update to fail. If the failure cannot be attributed to a specific attribute, the value of failure_index is 1.

status
A pointer to the completion status. On successful completion, the routine returns error_status_ok. Otherwise, it returns an error.

Description
The sec_attr_trig_update( ) routine passes attributes coded with an attribute trigger type of update to a user-written update attribute trigger server for evaluation before the updates are made to the registry.

Although generally this routine it is not called directly, this reference page is provided for users who are writing the attribute trigger servers that will receive sec_attr_trig_update( ) input and supply its output.

The sec_attr_trig_update( ) routine is called by the DCE attribute update code for all schema entries that specify an update attribute trigger (sec_attr_trig_type_update specified with the sec_attr_trig_type_flags_t data type). The attribute update code passes the sec_attr_trig_update( ) input parameters to a user-written update attribute trigger server and receives the output parameters back from the server. The attribute trigger server is responsible for evaluating the semantics of the entry in order to reject or accept it, and the attribute trigger server may even make changes in the output it sends back to the update code to ensure the entry adheres to the semantics. The output received from the attribute trigger server is in a form to be stored in the registry. (Note that update attribute trigger servers do not store attribute values. Attribute values are stored in the registry database.)

This is an atomic operation: if the update of any attribute in the array fails to pass the evaluation, all updates are aborted. The attribute causing the update to fail is identified in failure_index. If the failure cannot be attributed to a given attribute, failure_index contains 1.

For objects in the local cell, set the cell_name parameter to NULL, and the component_name parameter to specify the object's name.

For objects in a foreign cell, set the cell_name parameter the name of the foreign cells, and the component_name parameter to specify the UUID in string format that identifies the object in the foreign cell.

Files

/usr/include/dce/sec_attr_trig.idl
The idl file from which dce/sec_attr_trig.h was derived.

Errors

The following describes a partial list of errors that might be returned. Refer to the OSF DCE Problem Determination Guide for complete descriptions of all error messages.

database read only

server unavailable

invalid/unsupported attribute type

invalid encoding type

value not unique

site read only

unauthorized

error_status_ok

Related Information
Functions:

sec_intro(3sec)

sec_attr_trig_query(3sec)