ldap_get_values, ldap_get_values_len, ldap_count_values — LDAP attribute value handling routines


OpenLDAP LDAP (libldap, -lldap)


#include <ldap.h>

char **ldap_get_values(ld, entry, attr)
LDAP *ld;
LDAPMessage *entry;
char *attr;

struct berval **ldap_get_values_len(ld, entry, attr)
LDAP *ld;
LDAPMessage *entry;
char *attr;

int ldap_count_values(vals)
char **vals;

int ldap_count_values_len(vals)
struct berval **vals;

void ldap_value_free(vals)
char **vals;

void ldap_value_free_len(vals)
struct berval **vals;


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().


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.


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

See Also

ldap(3), ldap_first_entry(3), ldap_first_attribute(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.  

Referenced By

ldap(3), ldap_count_entries(3), ldap_first_attribute(3), ldap_get_dn(3), ldap_parse_reference(3), ldap_parse_result(3).

The man pages ldap_count_values(3), ldap_count_values_len(3), ldap_get_values_len(3), ldap_value_free(3) and ldap_value_free_len(3) are aliases of ldap_get_values(3).

2018/12/19 OpenLDAP 2.4.47