DESCRIPTION

These routines are used to retrieve and manipulate attribute values from an LDAP entry as
returned by ldap_first_entry(3) or ldap_next_entry(3). ldap_get_values() takes the entry
and the attribute attr whose values are desired and returns a NULL-terminated array of the
attribute's values. attr may be an attribute type as returned from
ldap_first_attribute(3) or ldap_next_attribute(3), or if the attribute type is known it
can simply be given.
The number of values in the array can be counted by calling ldap_count_values(). The
array of values returned can be freed by calling ldap_value_free().
If the attribute values are binary in nature, and thus not suitable to be returned as an
array of char *'s, the ldap_get_values_len() routine can be used instead. It takes the
same parameters as ldap_get_values(), but returns a NULL-terminated array of pointers to
berval structures, each containing the length of and a pointer to a value.
The number of values in the array can be counted by calling ldap_count_values_len(). The
array of values returned can be freed by calling ldap_value_free_len().

ERRORS

If an error occurs in ldap_get_values() or ldap_get_values_len(), NULL is returned and the
ld_errno field in the ld parameter is set to indicate the error. See ldap_error(3) for a
description of possible error codes.

NOTES

These routines dynamically allocate memory which the caller must free using the supplied
routines.