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

# ldap\_parse\_reference(3)

Extract referrals and controls from a reference message

## NAME

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

## LIBRARY

OpenLDAP LDAP (libldap, -lldap)

## SYNOPSIS

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

**int ldap\_parse\_reference( LDAP \*ld, LDAPMessage \*reference,**\
 	**char \*\*\*referralsp, LDAPControl \*\*\*serverctrlsp,**\
 	**int freeit )**

## 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)](/ldap_first_reference/3.md)**,** [**ldap\_next\_reference**(3)](/ldap_next_reference/3.md)**,** [**ldap\_first\_message**(3)](/ldap_first_message/3.md)**,** [**ldap\_next\_message**(3)](/ldap_next_message/3.md)**,** **or** [**ldap\_result**(3)](/ldap_result/3.md)**.**

**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)](/ldap_memvfree/3.md)**.** **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)](/ldap_controls_free/3.md). **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)](/ldap_msgfree/3.md) **routine can also be used to free the message later.**

## ERRORS

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

## SEE ALSO

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