LDAP_FIRST_ATTRIBUTE(3)

NAME
ldap_first_attribute, ldap_next_attribute - step through LDAP entry attributes

SYNOPSIS
#include <ldap.h>

char *ldap_first_attribute(ld, entry, berptr)
LDAP *ld;
LDAPMessage *entry;
BerElement **berptr;

char *ldap_next_attribute(ld, entry, ber)
LDAP *ld;
LDAPMessage *entry;
BerElement *ber;

DESCRIPTION
The ldap_first_attribute() and ldap_next_attribute() routines are used to step through the attributes in an LDAP entry. ldap_first_attribute() takes an entry as returned by ldap_first_entry(3) or ldap_next_entry(3) and returns a pointer to a per-connection buffer containing the first attribute type in the entry. The return value should be treated as if it is a pointer to a static area (i.e., strdup(3) it if you want to save it).

It also returns, in berptr, a pointer to a BerElement it has allocated to keep track of its current position. This pointer should be passed to subsequent calls to ldap_next_attribute() and is used used to effectively step through the entry's attributes. The caller is solely responsible for freeing the BerElement pointed to by berptr when it is no longer needed by calling ber_free(3). When calling ber_free(3) in this instance, be sure the second argument is 0.

The attribute names returned are suitable for inclusion in a call to ldap_get_values(3) to retrieve the attribute's values.

ERRORS
If an error occurs, 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
The ldap_first_attribute() routine dyanamically allocated memory that must be freed by the caller via ber_free(3).

SEE ALSO
ldap(3), ldap_first_entry(3), ldap_get_values(3), ldap_error(3)

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