---
name: "ldap_next_message"
section: "3"
platform: "linux"
package: "libldap"
version: "2.7.2-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/ldap_first_message"
---

# ldap\_next\_message(3)

Stepping through messages in a result chain

Part of [ldap\_first\_message(3)](/ldap_first_message/3.md).

## NAME

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

## LIBRARY

OpenLDAP LDAP (libldap, -lldap)

## 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

**These routines are used to step through the messages in a result chain** **received from** [**ldap\_result**(3)](/ldap_result/3.md)**.** **For search operations, the result chain can contain referral, entry** **and result messages. The** [**ldap\_msgtype**(3)](/ldap_msgtype/3.md) **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)](/ldap_result/3.md)**,** [**ldap\_search\_s**(3)](/ldap_search_s/3.md) **or** [**ldap\_search\_st**(3)](/ldap_search_st/3.md) **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)](/ldap_parse_result/3.md) **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)](/ldap_first_entry/3.md)**,** [**ldap\_next\_entry**(3)](/ldap_next_entry/3.md)**,** [**ldap\_first\_reference**(3)](/ldap_first_reference/3.md)**,** [**ldap\_next\_reference**(3)](/ldap_next_reference/3.md)**.**

## 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

[**ldap**(3)](/ldap/3.md), [**ldap\_search**(3)](/ldap_search/3.md), [**ldap\_result**(3)](/ldap_result/3.md), [**ldap\_parse\_result**(3)](/ldap_parse_result/3.md), [**ldap\_first\_entry**(3)](/ldap_first_entry/3.md), [**ldap\_first\_reference**(3)](/ldap_first_reference/3.md)

## ACKNOWLEDGEMENTS

**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.**
