Step 5: Perform the Operations
The following code fragments show the ds_add_entry( ), ds_list( ), and the ds_remove_entry( ) calls.
First, the two ds_add_entry( ) function calls add the attribute lists contained in attr_list1 and attr_list2 to the distinguished names represented by dn_brendan
and dn_sinead, respectively:
/* Add two entries to the GDS server. */
if (ds_add_entry(bound_session, DS_DEFAULT_CONTEXT,
dn_brendan, attr_list1,
&invoke_id) != DS_SUCCESS)
printf("ds_add_entry() error\n");
if (ds_add_entry(bound_session, DS_DEFAULT_CONTEXT,
dn_sinead, attr_list2,
&invoke_id) != DS_SUCCESS)
printf("ds_add_entry() error\n");
Next, list all the subordinates of the object referenced by the distinguished name /C=ie/O=sni/OU=ap:
if (ds_list(bound_session, DS_DEFAULT_CONTEXT, dn_ap,
&result, &invoke_id)
!= DS_SUCCESS)
printf("ds_list() error\n");
The ds_list( ) call returns the result in the private object result to the workspace. The components of result are represented by OM attributes in the OM class
DS_C_LIST_RESULT (as shown in the following figure) and can only be read by a series of om_get( ) calls.
OM Class DS_C_LIST_RESULT
Finally, remove the two entries from the directory:
if (ds_remove_entry(bound_session, DS_DEFAULT_CONTEXT,
dn_brendan, &invoke_id)
!= DS_SUCCESS)
printf("ds_remove_entry() error\n");
if (ds_remove_entry(bound_session, DS_DEFAULT_CONTEXT,
dn_sinead, &invoke_id)
!= DS_SUCCESS)
printf("ds_remove_entry() error\n");
|