LDAP\_FIRST\_MESSAGE(3) Library Functions Manual LDAP\_FIRST\_MESSAGE(3)

# [NAME](#NAME)

ldap\_first\_message, ldap\_next\_message, ldap\_count\_messages - Stepping through messages in a result chain

# [LIBRARY](#LIBRARY)

OpenLDAP LDAP (libldap, -lldap)

# [SYNOPSIS](#SYNOPSIS)

```
#include <ldap.h>
```

```
int ldap_count_messages( LDAP *ld, LDAPMessage *result )
```

```
LDAPMessage *ldap_first_message( LDAP *ld, LDAPMessage *result )
```

```
LDAPMessage *ldap_next_message( LDAP *ld, LDAPMessage *message )
```

# [DESCRIPTION](#DESCRIPTION)

These routines are used to step through the messages in a result chain received from [**ldap\_result**(3)](/man/enterprise-packages/openldap-2.6/ldap_result.3)**.** For search operations, the result chain can contain referral, entry and result messages. The [**ldap\_msgtype**(3)](/man/enterprise-packages/openldap-2.6/ldap_msgtype.3) function can be used to distinguish between the different message types.

The **ldap\_first\_message()** routine is used to retrieve the first message in a result chain. It takes the *result* as returned by a call to [**ldap\_result**(3)](/man/enterprise-packages/openldap-2.6/ldap_result.3)**,** [**ldap\_search\_s**(3)](/man/enterprise-packages/openldap-2.6/ldap_search_s.3) or [**ldap\_search\_st**(3)](/man/enterprise-packages/openldap-2.6/ldap_search_st.3) and returns a pointer to the first message in the result chain.

This pointer should be supplied on a subsequent call to **ldap\_next\_message()** to get the next message, the result of which should be supplied to the next call to **ldap\_next\_message()**, etc. **ldap\_next\_message()** will return NULL when there are no more messages.

These functions are useful when using routines like [**ldap\_parse\_result**(3)](/man/enterprise-packages/openldap-2.6/ldap_parse_result.3) that only operate on the first result in the chain.

A count of the number of messages in the result chain can be obtained by calling **ldap\_count\_messages()**. It can also be used to count the number of remaining messages in a chain if called with a message, entry or reference returned by **ldap\_first\_message() ,** **ldap\_next\_message() ,** [**ldap\_first\_entry**(3)](/man/enterprise-packages/openldap-2.6/ldap_first_entry.3)**,** [**ldap\_next\_entry**(3)](/man/enterprise-packages/openldap-2.6/ldap_next_entry.3)**,** [**ldap\_first\_reference**(3)](/man/enterprise-packages/openldap-2.6/ldap_first_reference.3)**,** [**ldap\_next\_reference**(3)](/man/enterprise-packages/openldap-2.6/ldap_next_reference.3)**.**

# [ERRORS](#ERRORS)

If an error occurs in **ldap\_first\_message()** or **ldap\_next\_message()**, NULL is returned. If an error occurs in **ldap\_count\_messages()**, -1 is returned.

# [SEE ALSO](#SEE_ALSO)

[**ldap**(3)](/man/enterprise-packages/openldap-2.6/ldap.3), [**ldap\_search**(3)](/man/enterprise-packages/openldap-2.6/ldap_search.3), [**ldap\_result**(3)](/man/enterprise-packages/openldap-2.6/ldap_result.3), [**ldap\_parse\_result**(3)](/man/enterprise-packages/openldap-2.6/ldap_parse_result.3), [**ldap\_first\_entry**(3)](/man/enterprise-packages/openldap-2.6/ldap_first_entry.3), [**ldap\_first\_reference**(3)](/man/enterprise-packages/openldap-2.6/ldap_first_reference.3)

# [ACKNOWLEDGEMENTS](#ACKNOWLEDGEMENTS)

**OpenLDAP Software** is developed and maintained by The OpenLDAP Project &lt;http://www.openldap.org/&gt;. **OpenLDAP Software** is derived from the University of Michigan LDAP 3.3 Release.

2026/10/21 OpenLDAP 2.6.16

---

Document: ldap_next_message(3) from openldap-2.6 2.6.16-r1 (Chainguard OS)
Source: https://git.openldap.org/openldap/openldap.git
