ldap_extended_operation, ldap_extended_operation_s — Extends the LDAP operations to the LDAP server.
#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 ); | 
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) 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) 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).
OpenLDAP Software is developed and maintained by The OpenLDAP Project <http://www.openldap.org/>. OpenLDAP Software is derived from University of Michigan LDAP 3.3 Release.