---
name: "ldap_extended_operation"
section: "3"
platform: "macos"
package: "OpenLDAP"
version: "561"
release: "macOS 26.5"
platforms: ["linux", "macos"]
url: "https://new.carta.tech/ldap_extended_operation"
---

# ldap\_extended\_operation(3)

Extends the LDAP operations to the LDAP server.

## NAME

ldap\_extended\_operation, ldap\_extended\_operation\_s - Extends the LDAP operations to the LDAP server.

## LIBRARY

OpenLDAP LDAP (libldap, -lldap)

## SYNOPSIS

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

**int ldap\_extended\_operation(**

**LDAP \****ld***,** **const char \****requestoid***,** **const struct berval \****requestdata***,** **LDAPControl \*\****sctrls***,** **LDAPControl \*\****cctrls***,** **int \****msgidp* **);**

**int ldap\_extended\_operation\_s(**

**LDAP \****ld***,** **const char \****requestoid***,** **const struct berval \****requestdata***,** **LDAPControl \*\****sctrls***,** **LDAPControl \*\****cctrls***,** **char \*\****retoidp***,** **struct berval \*\****retdatap* **);**

## DESCRIPTION

**The** **ldap\_extended\_operation\_s()** **routine is used to synchronously perform an LDAP extended operation.** **It takes** *requestoid***, which points to a dotted-decimal OID string** **identifying the extended operation to perform.** *requestdata* **is the** **data required for the request,** *sctrls* **is an array of LDAPControl** **structures to use with this extended operation,** *cctrls* **is an array** **of LDAPControl structures that list the client controls to use with** **this extended operation.**

**The output parameter** *retoidp* **points to a dotted-decimal OID** **string returned by the LDAP server.  The memory used by the string** **should be freed with the** [**ldap\_memfree**(3)](/ldap_memfree/3.md) **function.** **The output parameter** *retdatap* **points to a pointer to a berval** **structure that contains the returned data.  If no data is returned** **by the server, the pointer is set this to NULL.  The memory used by** **this structure should be freed with the** [**ber\_bvfree**(3)](/ber_bvfree/3.md) **function.**

**The** **ldap\_extended\_operation()** **works just like** **ldap\_extended\_operation\_s()**, **but the operation is asynchronous.  It provides the message id of** **the request it initiated in the integer pointed to be** *msgidp***.** **The result of this operation can be obtained by calling** **[ldap\_result(3)](/ldap_result/3.md).**

## SEE ALSO

[**ber\_bvfree**(3)](/ber_bvfree/3.md), [**ldap\_memfree**(3)](/ldap_memfree/3.md), [**ldap\_parse\_extended\_result**(3)](/ldap_parse_extended_result/3.md), [**ldap\_result**(3)](/ldap_result/3.md)

## ACKNOWLEDGEMENTS
