NAME

ds_modify_entry - Performs an atomic modification on a directory entry

SYNOPSIS

#include <xom.h>
#include <xds.h>

DS_status ds_modify_entry(
        OM_private_object session,
        OM_private_object context,
        OM_object name,
        OM_object changes,
        OM_sint *invoke_id_return);

PARAMETERS

Input

session
(Object(DS_C_SESSION)). The directory session against which this operation is performed. This must be a private object.

context
(Object(DS_C_CONTEXT)). The directory context to be used for this operation. Note that DS_SIZE_LIMIT and DS_DONT_DEREFERENCE_ALIASES do not apply to this operation. This parameter must be a private object or the DS_DEFAULT_CONTEXT constant.

name
(Object(DS_C_NAME)). The name of the target object entry. Any aliases in the name are not dereferenced.

changes
(Object(DS_C_ENTRY_MOD_LIST)). A sequence of modifications to the named entry.

Output

invoke_id_return
(Integer). Not supported.

DESCRIPTION

The ds_modify_entry() function is used to make a series of one or more of the following changes to a single directory entry:

Values can be replaced by a combination of adding values and removing values in a single operation. The RDN can only be changed by using ds_modify_rdn().

The result of the operation is as if each modification is made in the order specified in the changes parameter. If any of the individual modifications fails, then a DS_C_ATTRIBUTE_ERROR is reported and the entry is left as it was prior to the whole operation. The operation is atomic; that is, either all or none of the changes are made. The Directory checks that the resulting entry conforms to the Directory schema.

NOTES

Although the user ideally is not aware whether naming operations are being handled by GDS or CDS, there are some situations where naming results can differ between the two services. (See the xds_intro(3xds) reference page for XDS functions for the general differences between operations on GDS and CDS.)

Note the following issues for the ds_modify_entry() operation:

RETURN VALUES

DS_status
Takes the value DS_SUCCESS if all the modifications succeeded and takes an error value if not.

ERRORS

This function can return a DS_C_SYSTEM_ERROR or one of the following DS_C_LIBRARY_ERRORs:

The following directory errors can be returned by the function:

This function can return a DS_C_COMMUNICATIONS_ERROR, as well as the error constant DS_NO_WORKSPACE.

The following situations apply to GDS:


© 1990-1996, Transarc Corporation