openldap/doc/man/man3/ldap_controls.3

85 lines
2.7 KiB
Groff
Raw Normal View History

.TH LDAP_CONTROLS 3 "RELEASEDATE" "OpenLDAP LDVERSION"
.\" $OpenLDAP$
2018-03-22 23:35:24 +08:00
.\" Copyright 1998-2018 The OpenLDAP Foundation All Rights Reserved.
.\" Copying restrictions apply. See COPYRIGHT/LICENSE.
.SH NAME
2007-08-23 06:35:14 +08:00
ldap_control_create, ldap_control_find, ldap_control_dup,
ldap_controls_dup, ldap_control_free, ldap_controls_free
\- LDAP control manipulation routines
.SH LIBRARY
2009-06-03 08:43:44 +08:00
OpenLDAP LDAP (libldap, \-lldap)
.SH SYNOPSIS
.B #include <ldap.h>
.LP
2007-08-23 06:35:14 +08:00
.BI "int ldap_control_create(const char *" oid ", int " iscritical ", struct berval *" value ", int " dupval ", LDAPControl **" ctrlp ");"
.LP
2007-08-23 06:35:14 +08:00
.BI "LDAPControl *ldap_control_find( const char *" oid ", LDAPControl **" ctrls ", LDAPControl ***" nextctrlp ");"
.LP
.BI "LDAPControl *ldap_control_dup(LDAPControl *" ctrl ");"
.LP
.BI "LDAPControl **ldap_controls_dup(LDAPControl **" ctrls ");"
.LP
.BI "void ldap_control_free(LDAPControl *" ctrl ");"
.LP
.BI "void ldap_controls_free(LDAPControl **" ctrls ");"
.SH DESCRIPTION
These routines are used to manipulate structures used for LDAP controls.
2007-08-23 06:35:14 +08:00
.BR ldap_control_create ()
creates a control with the specified
.I OID
using the contents of the
2007-08-23 06:35:14 +08:00
.I value
parameter for the control value, if any. The content of
.I value
is duplicated if
.I dupval
is non-zero. The
.I iscritical
2007-08-23 06:35:14 +08:00
parameter must be non-zero for a critical control. The created control
is returned in the
.I ctrlp
2007-08-23 06:35:14 +08:00
parameter. The routine returns
.B LDAP_SUCCESS
on success or some other error code on failure.
2007-08-23 06:35:14 +08:00
The content of
.IR value ,
for supported control types, can be prepared using helpers provided
by this implementation of libldap, usually in the form
.BR "ldap_create_<control name>_control_value" ().
Otherwise, it can be BER-encoded using the functionalities of liblber.
.BR ldap_control_find ()
searches the NULL-terminated
.I ctrls
array for a control whose OID matches the
2007-08-23 06:35:14 +08:00
.I oid
parameter. The routine returns a pointer to the control if found,
NULL otherwise.
2007-08-23 06:35:14 +08:00
If the parameter
.I nextctrlp
is not NULL, on return it will point to the next control
in the array, and can be passed to the
.BR 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.
.BR ldap_control_dup ()
duplicates an individual control structure, and
.BR ldap_controls_dup ()
duplicates a NULL-terminated array of controls.
.BR ldap_control_free ()
frees an individual control structure, and
.BR ldap_controls_free ()
2007-08-23 06:35:14 +08:00
frees a NULL-terminated array of controls.
.SH SEE ALSO
.BR ldap (3),
.BR ldap_error (3)
.SH ACKNOWLEDGEMENTS
.so ../Project