ldap_control_create, ldap_control_find, ldap_control_dup, ldap_controls_dup,
ldap_control_free, ldap_controls_free - LDAP control manipulation routines
OpenLDAP LDAP (libldap, -lldap)
#include <ldap.h>
int ldap_control_create(const char *oid, int
iscritical, struct berval *value, int
dupval, LDAPControl **ctrlp);
LDAPControl *ldap_control_find( const char *oid, LDAPControl
**ctrls, LDAPControl ***nextctrlp);
LDAPControl *ldap_control_dup(LDAPControl *ctrl);
LDAPControl **ldap_controls_dup(LDAPControl **ctrls);
void ldap_control_free(LDAPControl *ctrl);
void ldap_controls_free(LDAPControl **ctrls);
These routines are used to manipulate structures used for LDAP controls.
ldap_control_create() creates a control with the specified
OID
using the contents of the
value parameter for the control value, if
any. The content of
value is duplicated if
dupval is non-zero.
The
iscritical parameter must be non-zero for a critical control. The
created control is returned in the
ctrlp parameter. The routine returns
LDAP_SUCCESS on success or some other error code on failure. The
content of
value, for supported control types, can be prepared using
helpers provided by this implementation of libldap, usually in the form
ldap_create_<control name>_control_value(). Otherwise, it can be
BER-encoded using the functionalities of liblber.
ldap_control_find() searches the NULL-terminated
ctrls array for a
control whose OID matches the
oid parameter. The routine returns a
pointer to the control if found, NULL otherwise. If the parameter
nextctrlp is not NULL, on return it will point to the next control in
the array, and can be passed to the
ldap_control_find() routine for
subsequent calls, to find further occurrences of the same control type. The
use of this function is discouraged; the recommended way of handling controls
in responses consists in going through the array of controls, dealing with
each of them in the returned order, since it could matter.
ldap_control_dup() duplicates an individual control structure, and
ldap_controls_dup() duplicates a NULL-terminated array of controls.
ldap_control_free() frees an individual control structure, and
ldap_controls_free() frees a NULL-terminated array of controls.
ldap(3),
ldap_error(3)
OpenLDAP Software is developed and maintained by The OpenLDAP Project
<
http://www.openldap.org/>.
OpenLDAP Software is derived from the
University of Michigan LDAP 3.3 Release.