21.4. slapi_build_control_from_berval()

Description

This function creates an LDAPControl structure based on a struct berval, an OID, and a criticality flag. The LDAPControl that is created can be used in LDAP client requests or internal operations.

Syntax

#include "slapi-plugin.h"
int slapi_build_control_from_berval( char *oid, struct berval *bvp,char iscritical, LDAPControl **ctrlp );

Parameters

This function takes the following parameters:

oid
The OID (object identifier) for the control that is to be created.
bvp
A struct berval that contains the control value. Pass NULL if the control has no value.
iscritical
The criticality flag. If non-zero, the control will be marked as critical. If 0, it will not be marked as critical.
ctrlp
Pointer that will receive the allocated LDAPControl structure.
Returns

This function returns LDAP_SUCCESS (LDAP result code) if successful.

Memory Concerns

The contents of the bvp parameter are consumed by this function. Because of this, the caller should not free the bvp->bv_val pointer once a successful call to this function has been made.

The LDAPControl pointer that is returned in ctrlp should be freed by calling ldap_control_free(), which is an LDAP API function; see the Mozilla LDAP SDK for C Programmer's Guide.
See Also