Back to main site | Back to man page index

LDAP_CONTROLS(3)                               Library Functions Manual                              LDAP_CONTROLS(3)



NAME
       ldap_control_create,  ldap_control_find,  ldap_control_dup,  ldap_controls_dup,  ldap_control_free,  ldap_con‐
       trols_free - LDAP control manipulation routines

LIBRARY
       OpenLDAP LDAP (libldap, -lldap)

SYNOPSIS
       #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);

DESCRIPTION
       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  parame‐
       ter must be non-zero for a critical control. The created control is returned in the ctrlp parameter.  The rou‐
       tine 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 parame‐
       ter.  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_con‐
       trol_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-ter‐
       minated array of controls.

       ldap_control_free()  frees  an  individual control structure, and ldap_controls_free() frees a NULL-terminated
       array of controls.


SEE ALSO
       ldap(3), ldap_error(3)

ACKNOWLEDGEMENTS
       OpenLDAP Software is developed and maintained by The OpenLDAP  Project  <http://www.openldap.org/>.   OpenLDAP
       Software is derived from University of Michigan LDAP 3.3 Release.