LDAP\_PARSE\_REFERENCE(3) Library Functions Manual LDAP\_PARSE\_REFERENCE(3)

# [NAME](#NAME)

ldap\_parse\_reference - Extract referrals and controls from a reference message

# [LIBRARY](#LIBRARY)

OpenLDAP LDAP (libldap, -lldap)

# [SYNOPSIS](#SYNOPSIS)

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

```
int ldap_parse_reference( LDAP *ld, LDAPMessage *reference,
	char ***referralsp, LDAPControl ***serverctrlsp,
	int freeit )
```

# [DESCRIPTION](#DESCRIPTION)

The **ldap\_parse\_reference()** routine is used to extract referrals and controls from a reference message. The *reference* parameter is a reference message as returned by a call to [**ldap\_first\_reference**(3)](/man/os/openldap-2.7/ldap_first_reference.3)**,** [**ldap\_next\_reference**(3)](/man/os/openldap-2.7/ldap_next_reference.3)**,** [**ldap\_first\_message**(3)](/man/os/openldap-2.7/ldap_first_message.3)**,** [**ldap\_next\_message**(3)](/man/os/openldap-2.7/ldap_next_message.3)**,** or [**ldap\_result**(3)](/man/os/openldap-2.7/ldap_result.3)**.**

The *referralsp* parameter will be filled in with an allocated array of character strings. The strings are copies of the referrals contained in the parsed message. The array should be freed by calling [**ldap\_memvfree**(3)](/man/os/openldap-2.7/ldap_memvfree.3)**.** If *referralsp* is NULL, no referrals are returned. If no referrals were returned, *\*referralsp* is set to NULL.

The *serverctrlsp* parameter will be filled in with an allocated array of controls copied from the parsed message. The array should be freed by calling [**ldap\_controls\_free**(3)](/man/os/openldap-2.7/ldap_controls_free.3). If *serverctrlsp* is NULL, no controls are returned. If no controls were returned, *\*serverctrlsp* is set to NULL.

The *freeit* parameter determines whether the parsed message is freed or not after the extraction. Any non-zero value will make it free the message. The [**ldap\_msgfree**(3)](/man/os/openldap-2.7/ldap_msgfree.3) routine can also be used to free the message later.

# [ERRORS](#ERRORS)

Upon success LDAP\_SUCCESS is returned. Otherwise the values of the *referralsp* and *serverctrlsp* parameters are undefined.

# [SEE ALSO](#SEE_ALSO)

[**ldap**(3)](/man/os/openldap-2.7/ldap.3), [**ldap\_first\_reference**(3)](/man/os/openldap-2.7/ldap_first_reference.3), [**ldap\_first\_message**(3)](/man/os/openldap-2.7/ldap_first_message.3), [**ldap\_result**(3)](/man/os/openldap-2.7/ldap_result.3), [**ldap\_get\_values**(3)](/man/os/openldap-2.7/ldap_get_values.3), [**ldap\_controls\_free**(3)](/man/os/openldap-2.7/ldap_controls_free.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.7.2

---

Document: ldap_parse_reference(3) from openldap-2.7 2.7.2-r0 (Chainguard OS)
Source: https://github.com/openldap/openldap.git
