---
name: "Mozilla::LDAP::API"
section: "3pm"
platform: "linux"
package: "libmozilla-ldap-perl"
version: "1.5.3-3.1+b1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Mozilla::LDAP::API"
---

# Mozilla::LDAP::API(3pm)

## NAME

```
  Mozilla::LDAP::API - Perl methods for LDAP C API calls
```

## SYNOPSIS

```
  use Mozilla::LDAP::API;
       or
  use Mozilla::LDAP::API qw(:api :ssl :constant);
       or
  use Mozilla::LDAP::API qw(:api :ssl :apiv3 :constant);
       or
  use Mozilla::LDAP::API qw(:api :ssl :apiv3 :nspr :constant);
```

## DESCRIPTION

This package offers a direct interface to the LDAP C API calls from Perl. It is used internally by the other Mozilla::LDAP modules.  It is highly suggested that you use the object oriented interface in Mozilla::LDAP::Conn and Mozilla::LDAP::Entry unless you need to use asynchronous calls or other functionality not available in the OO interface.

## THIS DOCUMENT

This document has a number of known errors that will be corrected in the next revision.  Since it is not expected that users will need to use this interface frequently, priority was placed on other documents.  You can find examples of how to actually use the API calls under the test\_api directory.

## CREATING AN ADD/MODIFY HASH

For the add and modify routines you will need to generate a list of attributes and values.

You will do this by creating a HASH table.  Each attribute in the hash contains associated values.  These values can be one of three things.

```
  - SCALAR VALUE    (ex. "Clayton Donley")
  - ARRAY REFERENCE (ex. ["Clayton Donley","Clay Donley"])
  - HASH REFERENCE  (ex. {"r",["Clayton Donley"]}
       note:  the value inside the HASH REFERENCE must currently
               be an ARRAY REFERENCE.
```

The key inside the HASH REFERENCE must be one of the following for a modify operation:\
   \- "a" for LDAP\_MOD\_ADD (Add these values to the attribute)\
   \- "r" for LDAP\_MOD\_REPLACE (Replace these values in the attribute)\
   \- "d" for LDAP\_MOD\_DELETE (Delete these values from the attribute)

Additionally, in add and modify operations, you may specify "b" if the attributes you are adding are BINARY (ex. "rb" to replace binary).

Currently, it is only possible to do one operation per add/modify operation, meaning you can't do something like:

```
   {"d",["Clayton"],"a",["Clay"]}   <-- WRONG!
```

Using any combination of the above value types, you can do things like:

`%ldap_modifications` = (\
    "cn", "Clayton Donley",                    # Replace 'cn' values\
    "givenname", \["Clayton","Clay"\],           # Replace 'givenname' values\
    "mail", {"a",\["donley\\@cig.mcel.mot.com"\],  #Add 'mail' values\
    "jpegphoto", {"rb",\[$jpegphotodata\]},      # Replace Binary jpegPhoto );

Then remember to call the add or modify operations with a REFERENCE to this HASH.

## API Methods

The following are the available API methods for Mozilla::LDAP::API.  Many of these items have bad examples and OUTPUT information.  Other information should be correct.

- **ldap\_abandon**(ld,msgid)

  DESCRIPTION:

  Abandon an asynchronous LDAP operation

  INPUT:\
     ld - LDAP Session Handle\
     msgid - Integer

  OUTPUT:\
     status - Integer

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_abandon($ld,$msgid);
  ```

- **ldap\_abandon\_ext**(ld,msgid,serverctrls,clientctrls)

  DESCRIPTION:

  Abandon an asynchronous LDAP operation w/ Controls

  INPUT:\
     ld - LDAP Session Handle\
     msgid - Integer\
     serverctrls - LDAP Control List Pointer\
     clientctrls - LDAP Control List Pointer

  OUTPUT:\
     status - Integer

  AVAILABILITY: V3

  EXAMPLE:

  ```
    $status = ldap_abandon_ext($ld,$msgid,$serverctrls,$clientctrls);
  ```

- **ldap\_add**(ld,dn,attrs)

  DESCRIPTION:

  Asynchronously add a LDAP entry

  INPUT:\
     ld - LDAP Session Handle\
     dn - String\
     attrs - LDAP Add/Modify Hash

  OUTPUT:\
     status - Integer

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_add($ld,$dn,$attrs);
  ```

- **ldap\_add\_ext**(ld,dn,attrs,serverctrls,clientctrls,msgidp)

  DESCRIPTION:

  Asynchronously add a LDAP entry w/ Controls

  INPUT:\
     ld - LDAP Session Handle\
     dn - String\
     attrs - LDAP Add/Modify Hash\
     serverctrls - LDAP Control List Pointer\
     clientctrls - LDAP Control List Pointer\
     msgidp - Integer

  OUTPUT:\
     status - Integer\
     msgidp - Integer

  AVAILABILITY: V3

  EXAMPLE:

  ```
    $status = ldap_add_ext($ld,$dn,$attrs,$serverctrls,$clientctrls,$msgidp);
  ```

- **ldap\_add\_ext\_s**(ld,dn,attrs,serverctrls,clientctrls)

  DESCRIPTION:

  Synchronously add a LDAP entry w/ Controls

  INPUT:\
     ld - LDAP Session Handle\
     dn - String\
     attrs - LDAP Add/Modify Hash\
     serverctrls - LDAP Control List Pointer\
     clientctrls - LDAP Control List Pointer

  OUTPUT:\
     status - Integer

  AVAILABILITY: V3

  EXAMPLE:

  ```
    $status = ldap_add_ext_s($ld,$dn,$attrs,$serverctrls,$clientctrls);
  ```

- **ldap\_add\_s**(ld,dn,attrs)

  DESCRIPTION:

  Synchronously add a LDAP entry

  INPUT:\
     ld - LDAP Session Handle\
     dn - String\
     attrs - LDAP Add/Modify Hash

  OUTPUT:\
     status - Integer

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_add_s($ld,$dn,$attrs);
  ```

- **ldap\_ber\_free**(ber,freebuf)

  DESCRIPTION:

  Free a BER element pointer

  INPUT:\
     ber - BER Element Pointer\
     freebuf - Integer

  OUTPUT:\
     status - NONE

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_ber_free($ber,$freebuf);
  ```

- **ldap\_bind**(ld,dn,passwd,authmethod)

  DESCRIPTION:

  Asynchronously bind to the LDAP server

  INPUT:\
     ld - LDAP Session Handle\
     dn - String\
     passwd - String\
     authmethod - Integer

  OUTPUT:\
     status - Integer

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_bind($ld,$dn,$passwd,$authmethod);
  ```

- **ldap\_bind\_s**(ld,dn,passwd,authmethod)

  DESCRIPTION:

  Synchronously bind to a LDAP server

  INPUT:\
     ld - LDAP Session Handle\
     dn - String\
     passwd - String\
     authmethod - Integer

  OUTPUT:\
     status - Integer

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_bind_s($ld,$dn,$passwd,$authmethod);
  ```

- **ldap\_compare**(ld,dn,attr,value)

  DESCRIPTION:

  Asynchronously compare an attribute/value pair and an entry

  INPUT:\
     ld - LDAP Session Handle\
     dn - String\
     attr - String\
     value - String

  OUTPUT:\
     status - Integer

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_compare($ld,$dn,$attr,$value);
  ```

- **ldap\_compare\_ext**(ld,dn,attr,bvalue,serverctrls,clientctrls,msgidp)

  DESCRIPTION:

  Asynchronously compare an attribute/value pair and an entry w/ Controls

  INPUT:\
     ld - LDAP Session Handle\
     dn - String\
     attr - String\
     bvalue - Binary String\
     serverctrls - LDAP Control List Pointer\
     clientctrls - LDAP Control List Pointer\
     msgidp - Integer

  OUTPUT:\
     status - Integer\
     msgidp - Integer

  AVAILABILITY: V3

  EXAMPLE:

  ```
    $status = ldap_compare_ext($ld,$dn,$attr,$bvalue,$serverctrls,$clientctrls,$msgidp);
  ```

- **ldap\_compare\_ext\_s**(ld,dn,attr,bvalue,serverctrls,clientctrls)

  DESCRIPTION:

  Synchronously compare an attribute/value pair to an entry w/ Controls

  INPUT:\
     ld - LDAP Session Handle\
     dn - String\
     attr - String\
     bvalue - Binary String\
     serverctrls - LDAP Control List Pointer\
     clientctrls - LDAP Control List Pointer

  OUTPUT:\
     status - Integer

  AVAILABILITY: V3

  EXAMPLE:

  ```
    $status = ldap_compare_ext_s($ld,$dn,$attr,$bvalue,$serverctrls,$clientctrls);
  ```

- **ldap\_compare\_s**(ld,dn,attr,value)

  DESCRIPTION:

  Synchronously compare an attribute/value pair to an entry

  INPUT:\
     ld - LDAP Session Handle\
     dn - String\
     attr - String\
     value - String

  OUTPUT:\
     status - Integer

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_compare_s($ld,$dn,$attr,$value);
  ```

- **ldap\_control\_free**(ctrl)

  DESCRIPTION:

  Free a LDAP control pointer

  INPUT:\
     ctrl - LDAP Control Pointer

  OUTPUT:\
     status - NONE

  AVAILABILITY: V3

  EXAMPLE:

  ```
    $status = ldap_control_free($ctrl);
  ```

- **ldap\_controls\_count**(ctrls)

  DESCRIPTION:

  Count the number of LDAP controls in a LDAP Control List

  INPUT:\
     ctrls - LDAP Control List Pointer

  OUTPUT:\
     status - Integer

  AVAILABILITY: V3

  EXAMPLE:

  ```
    $status = ldap_controls_count($ctrls);
  ```

- **ldap\_controls\_free**(ctrls)

  DESCRIPTION:

  Free a list of LDAP controls

  INPUT:\
     ctrls - LDAP Control List Pointer

  OUTPUT:\
     status - NONE

  AVAILABILITY: V3

  EXAMPLE:

  ```
    $status = ldap_controls_free($ctrls);
  ```

- **ldap\_count\_entries**(ld,result)

  DESCRIPTION:

  Count the number of LDAP entries returned

  INPUT:\
     ld - LDAP Session Handle\
     result - LDAP Message Pointer

  OUTPUT:\
     status - Integer

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $count = ldap_count_entries($ld,$result);
  ```

- **ldap\_count\_messages**(ld,result)

  DESCRIPTION:

  Count the number of LDAP messages returned

  INPUT:\
     ld - LDAP Session Handle\
     result - LDAP Message Pointer

  OUTPUT:\
     status - Integer

  AVAILABILITY: V3

  EXAMPLE:

  ```
    $status = ldap_count_messages($ld,$result);
  ```

- **ldap\_count\_references**(ld,result)

  DESCRIPTION:

  Count the number of LDAP references returned

  INPUT:\
     ld - LDAP Session Handle\
     result - LDAP Message Pointer

  OUTPUT:\
     status - Integer

  AVAILABILITY: V3

  EXAMPLE:

  ```
    $status = ldap_count_references($ld,$result);
  ```

- **ldap\_create\_filter**(buf,buflen,pattern,prefix,suffix,attr,value,valwords)

  DESCRIPTION:

  Create a LDAP search filter

  INPUT:\
     buf - String\
     buflen - Integer\
     pattern - String\
     prefix - String\
     suffix - String\
     attr - String\
     value - String\
     valwords - List Reference

  OUTPUT:\
     status - Integer

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_create_filter($buf,$buflen,$pattern,$prefix,$suffix,$attr,$value,$valwords);
  ```

- **ldap\_create\_persistentsearch\_control**(ld,changetypes,changesonly,return\_echg\_ctrls,ctrl\_iscritical,ctrlp)

  DESCRIPTION:

  Create a persistent search control

  INPUT:\
     ld - LDAP Session Handle\
     changetypes - Integer\
     changesonly - Integer\
     return\_echg\_ctrls - Integer\
     ctrl\_iscritical - Integer\
     ctrlp - LDAP Control List Pointer

  OUTPUT:\
     status - Integer\
     ctrlp - LDAP Control List Pointer

  AVAILABILITY: V3

  EXAMPLE:

  ```
    $status = ldap_create_persistentsearch_control($ld,$changetypes,$changesonly,$return_echg_ctrls,$ctrl_iscritical,$ctrlp);
  ```

- **ldap\_create\_sort\_control**(ld,sortKeyList,ctrl\_iscritical,ctrlp)

  DESCRIPTION:

  Create a LDAP sort control

  INPUT:\
     ld - LDAP Session Handle\
     sortKeyList - Sort Key Pointer\
     ctrl\_iscritical - Integer\
     ctrlp - LDAP Control List Pointer

  OUTPUT:\
     status - Integer\
     ctrlp - LDAP Control List Pointer

  AVAILABILITY: V3

  EXAMPLE:

  ```
    $status = ldap_create_sort_control($ld,$sortKeyList,$ctrl_iscritical,$ctrlp);
  ```

- **ldap\_create\_sort\_keylist**(sortKeyList,string\_rep)

  DESCRIPTION:

  Create a list of keys to be used by a sort control

  INPUT:\
     sortKeyList - Sort Key Pointer\
     string\_rep - String

  OUTPUT:\
     status - Integer\
     sortKeyList - Sort Key Pointer

  AVAILABILITY: V3

  EXAMPLE:

  ```
    $status = ldap_create_sort_keylist($sortKeyList,$string_rep);
  ```

- **ldap\_create\_virtuallist\_control**(ld,ldvlistp,ctrlp)

  DESCRIPTION:

  Create a LDAP virtual list control

  INPUT:\
     ld - LDAP Session Handle\
     ctrlp - LDAP Control List Pointer

  OUTPUT:\
     status - Integer\
     ctrlp - LDAP Control List Pointer

  AVAILABILITY: V3

  EXAMPLE:

  ```
    $status = ldap_create_virtuallist_control($ld,$ldvlistp,$ctrlp);
  ```

- **ldap\_delete**(ld,dn)

  DESCRIPTION:

  Asynchronously delete a LDAP entry

  INPUT:\
     ld - LDAP Session Handle\
     dn - String

  OUTPUT:\
     status - Integer

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_delete($ld,$dn);
  ```

- **ldap\_delete\_ext**(ld,dn,serverctrls,clientctrls,msgidp)

  DESCRIPTION:

  Asynchronously delete a LDAP entry w/ Controls

  INPUT:\
     ld - LDAP Session Handle\
     dn - String\
     serverctrls - LDAP Control List Pointer\
     clientctrls - LDAP Control List Pointer\
     msgidp - Integer

  OUTPUT:\
     status - Integer\
     msgidp - Integer

  AVAILABILITY: V3

  EXAMPLE:

  ```
    $status = ldap_delete_ext($ld,$dn,$serverctrls,$clientctrls,$msgidp);
  ```

- **ldap\_delete\_ext\_s**(ld,dn,serverctrls,clientctrls)

  DESCRIPTION:

  Synchronously delete a LDAP entry w/ Controls

  INPUT:\
     ld - LDAP Session Handle\
     dn - String\
     serverctrls - LDAP Control List Pointer\
     clientctrls - LDAP Control List Pointer

  OUTPUT:\
     status - Integer

  AVAILABILITY: V3

  EXAMPLE:

  ```
    $status = ldap_delete_ext_s($ld,$dn,$serverctrls,$clientctrls);
  ```

- **ldap\_delete\_s**(ld,dn)

  DESCRIPTION:

  Synchronously delete a LDAP entry

  INPUT:\
     ld - LDAP Session Handle\
     dn - String

  OUTPUT:\
     status - Integer

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_delete_s($ld,$dn);
  ```

- **ldap\_dn2ufn**(dn)

  DESCRIPTION:

  Change a DN to a "Friendly" name

  INPUT:\
     dn - String

  OUTPUT:\
     status - String

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_dn2ufn($dn);
  ```

- **ldap\_err2string**(err)

  DESCRIPTION:

  Return the string value of a LDAP error code

  INPUT:\
     err - Integer

  OUTPUT:\
     status - String

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_err2string($err);
  ```

- **ldap\_explode\_dn**(dn,notypes)

  DESCRIPTION:

  Split a given DN into its components.  Setting 'notypes' to 1 returns the components without their type names.

  INPUT:\
     dn - String\
     notypes - Integer

  OUTPUT:\
     status - NONE

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_explode_dn($dn,$notypes);
  ```

- **ldap\_explode\_rdn**(dn,notypes)

  DESCRIPTION:

  Split a Relative DN into its components

  INPUT:\
     dn - String\
     notypes - Integer

  OUTPUT:\
     status - NONE

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_explode_rdn($dn,$notypes);
  ```

- **ldap\_extended\_operation**(ld,requestoid,requestdata,serverctrls,clientctrls,msgidp)

  DESCRIPTION:

  Perform an asynchronous extended operation

  INPUT:\
     ld - LDAP Session Handle\
     requestoid - String\
     requestdata - Binary String\
     serverctrls - LDAP Control List Pointer\
     clientctrls - LDAP Control List Pointer\
     msgidp - Integer

  OUTPUT:\
     status - Integer\
     msgidp - Integer

  AVAILABILITY: V3

  EXAMPLE:

  ```
    $status = ldap_extended_operation($ld,$requestoid,$requestdata,$serverctrls,$clientctrls,$msgidp);
  ```

- **ldap\_extended\_operation\_s**(ld,requestoid,requestdata,serverctrls,clientctrls,retoidp,retdatap)

  DESCRIPTION:

  Perform a synchronous extended operation

  INPUT:\
     ld - LDAP Session Handle\
     requestoid - String\
     requestdata - Binary String\
     serverctrls - LDAP Control List Pointer\
     clientctrls - LDAP Control List Pointer\
     retoidp - String

  OUTPUT:\
     status - Integer\
     retoidp - Return OID\
     retdatap - Return Data

  AVAILABILITY: V3

  EXAMPLE:

  ```
    $status = ldap_extended_operation_s($ld,$requestoid,$requestdata,$serverctrls,$clientctrls,$retoidp,$retdatap);
  ```

- **ldap\_first\_attribute**(ld,entry,ber)

  DESCRIPTION:

  Return the first attribute returned for a LDAP entry

  INPUT:\
     ld - LDAP Session Handle\
     entry - LDAP Message Pointer\
     ber - Ber Element Pointer

  OUTPUT:\
     status - String\
     ber - Ber Element Pointer

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_first_attribute($ld,$entry,$ber);
  ```

- **ldap\_first\_entry**(ld,chain)

  DESCRIPTION:

  Return the first entry in a LDAP result chain

  INPUT:\
     ld - LDAP Session Handle\
     chain - LDAP Message Pointer

  OUTPUT:\
     status - LDAP Message Pointer

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_first_entry($ld,$chain);
  ```

- **ldap\_first\_message**(ld,res)

  DESCRIPTION:

  Return the first message in a LDAP result

  INPUT:\
     ld - LDAP Session Handle\
     res - LDAP Message Pointer

  OUTPUT:\
     status - LDAP Message Pointer

  AVAILABILITY: V3

  EXAMPLE:

  ```
    $status = ldap_first_message($ld,$res);
  ```

- **ldap\_first\_reference**(ld,res)

  DESCRIPTION:

  Return the first reference in a LDAP result

  INPUT:\
     ld - LDAP Session Handle\
     res - LDAP Message Pointer

  OUTPUT:\
     status - LDAP Message Pointer

  AVAILABILITY: V3

  EXAMPLE:

  ```
    $status = ldap_first_reference($ld,$res);
  ```

- **ldap\_free\_friendlymap**(map)

  DESCRIPTION:

  Free a LDAP friendly map pointer

  INPUT:\
     map - Friendly Map Pointer

  OUTPUT:\
     status - NONE

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_free_friendlymap($map);
  ```

- **ldap\_free\_sort\_keylist**(sortKeyList)

  DESCRIPTION:

  Free a LDAP sort key pointer

  INPUT:\
     sortKeyList - Sort Key Pointer

  OUTPUT:\
     status - NONE

  AVAILABILITY: V3

  EXAMPLE:

  ```
    $status = ldap_free_sort_keylist($sortKeyList);
  ```

- **ldap\_free\_urldesc**(ludp)

  DESCRIPTION:

  Free a LDAP URL description hash reference

  INPUT:\
     ludp - URL Description Hash Reference

  OUTPUT:\
     status - NONE

  AVAILABILITY: V3

  EXAMPLE:

  ```
    $status = ldap_free_urldesc($ludp);
  ```

- **ldap\_friendly\_name**(filename,name,map)

  DESCRIPTION:

  Create a LDAP friendly name map

  INPUT:\
     filename - String\
     name - String\
     map - Friendly Map Pointer

  OUTPUT:\
     status - String

  AVAILABILITY: V3

  EXAMPLE:

  ```
    $status = ldap_friendly_name($filename,$name,$map);
  ```

- **ldap\_get\_dn**(ld,entry)

  DESCRIPTION:

  Return the distinguished name for an entry

  INPUT:\
     ld - LDAP Session Handle\
     entry - LDAP Message Pointer

  OUTPUT:\
     status - String

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_get_dn($ld,$entry);
  ```

- **ldap\_get\_entry\_controls**(ld,entry,serverctrlsp)

  DESCRIPTION:

  Return the controls for a LDAP entry

  INPUT:\
     ld - LDAP Session Handle\
     entry - LDAP Message Pointer\
     serverctrlsp - LDAP Control List Pointer

  OUTPUT:\
     status - Integer\
     serverctrlsp - LDAP Control List Pointer

  AVAILABILITY: V3

  EXAMPLE:

  ```
    $status = ldap_get_entry_controls($ld,$entry,$serverctrlsp);
  ```

- **ldap\_getfilter\_free**(lfdp)

  DESCRIPTION:

  Free a LDAP filter

  INPUT:\
     lfdp - LDAP Filter Description Pointer

  OUTPUT:\
     status - NONE

  AVAILABILITY: V3

  EXAMPLE:

  ```
    $status = ldap_getfilter_free($lfdp);
  ```

- **ldap\_getfirstfilter**(lfdp,tagpat,value)

  DESCRIPTION:

  Get the first generated filter

  INPUT:\
     lfdp - LDAP Filter Description Pointer\
     tagpat - String

  OUTPUT:\
     status - LDAP Filter Information Pointer

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_getfirstfilter($lfdp,$tagpat,$value);
  ```

- **ldap\_get\_lang\_values**(ld,entry,target,type)

  DESCRIPTION:

  Get values for an entry

  INPUT:\
     ld - LDAP Session Handle\
     entry - LDAP Message Pointer\
     target - String\
     type - String

  OUTPUT:\
     status - NONE

  AVAILABILITY: V3

  EXAMPLE:

  ```
    $status = ldap_get_lang_values($ld,$entry,$target,$type);
  ```

- **ldap\_get\_lang\_values\_len**(ld,entry,target,type)

  DESCRIPTION:

  Get binary values for an entry

  INPUT:\
     ld - LDAP Session Handle\
     entry - LDAP Message Pointer\
     target - String\
     type - String

  OUTPUT:\
     status - NONE

  AVAILABILITY: V3

  EXAMPLE:

  ```
    $status = ldap_get_lang_values_len($ld,$entry,$target,$type);
  ```

- **ldap\_get\_lderrno**(ld,m,s)

  DESCRIPTION:

  INPUT:\
     ld - LDAP Session Handle\
     m  - String Reference (or undef)\
     s  - String Reference (or undef)

  OUTPUT:\
     status - Integer

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_get_lderrno($ld,\$m,\$s);
  ```

- **ldap\_getnextfilter**(lfdp)

  DESCRIPTION:

  Get the next generated LDAP filter

  INPUT:\
     lfdp - LDAP Filter Information Pointer

  OUTPUT:\
     status - LDAP Filter Information Pointer

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_getnextfilter($lfdp);
  ```

- **ldap\_get\_option**(ld,option,optdata)

  DESCRIPTION:

  Get an option for a LDAP session

  INPUT:\
     ld - LDAP Session Handle\
     option - Integer\
     optdata - Integer

  OUTPUT:\
     status - Integer\
     optdata - Integer

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_get_option($ld,$option,$optdata);
  ```

- **ldap\_get\_values**(ld,entry,target)

  DESCRIPTION:

  Get the values for a LDAP entry and attribute

  INPUT:\
     ld - LDAP Session Handle\
     entry - LDAP Message Pointer\
     target - String

  OUTPUT:\
     status - NONE

  AVAILABILITY: V3

  EXAMPLE:

  ```
    $status = ldap_get_values($ld,$entry,$target);
  ```

- **ldap\_get\_values\_len**(ld,entry,target)

  DESCRIPTION:

  Get the binary values for a LDAP entry and attribute

  INPUT:\
     ld - LDAP Session Handle\
     entry - LDAP Message Pointer\
     target - String

  OUTPUT:\
     status - NONE

  AVAILABILITY: V3

  EXAMPLE:

  ```
    $status = ldap_get_values_len($ld,$entry,$target);
  ```

- **ldap\_init**(host,port)

  DESCRIPTION:

  Initialize a LDAP session

  INPUT:\
     host - String\
     port - Integer

  OUTPUT:\
     status - LDAP Session Handle

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_init($host,$port);
  ```

- **ldap\_init\_getfilter**(fname)

  DESCRIPTION:

  Initialize the LDAP filter generation routines to a filename

  INPUT:\
     fname - Filename String

  OUTPUT:\
     status - LDAP Filter Description Pointer

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_init_getfilter($fname);
  ```

- **ldap\_init\_getfilter\_buf**(buf,buflen)

  DESCRIPTION:

  Initialize the LDAP filter generation routines to a buffer

  INPUT:\
     buf - String\
     buflen - Integer

  OUTPUT:\
     status - LDAP Filter Description Pointer

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_init_getfilter_buf($buf,$buflen);
  ```

- **ldap\_is\_ldap\_url**(url)

  DESCRIPTION:

  Return 1 if an the argument is a valid LDAP URL

  INPUT:\
     url - String

  OUTPUT:\
     status - Integer

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_is_ldap_url($url);
  ```

- **ldap\_memcache\_destroy**(cache)

  DESCRIPTION:

  Destroy a memory cache

  INPUT:\
     cache - LDAP Memory Cache Pointer

  OUTPUT:\
     status - NONE

  AVAILABILITY: V3

  EXAMPLE:

  ```
    $status = ldap_memcache_destroy($cache);
  ```

- **ldap\_memcache\_flush**(cache,dn,scope)

  DESCRIPTION:

  Flush a specific DN from the memory cache

  INPUT:\
     cache - LDAP Memory Cache Pointer\
     dn - String\
     scope - Integer

  OUTPUT:\
     status - NONE

  AVAILABILITY: V3

  EXAMPLE:

  ```
    $status = ldap_memcache_flush($cache,$dn,$scope);
  ```

- **ldap\_memcache\_get**(ld,cachep)

  DESCRIPTION:

  Get the memory cache for a LDAP session

  INPUT:\
     ld - LDAP Session Handle\
     cachep - LDAP Memory Cache Pointer

  OUTPUT:\
     status - Integer\
     cachep - LDAP Memory Cache Pointer

  AVAILABILITY: V3

  EXAMPLE:

  ```
    $status = ldap_memcache_get($ld,$cachep);
  ```

- **ldap\_memcache\_init**(ttl,size,baseDNs,cachep)

  DESCRIPTION:

  Initialize a LDAP memory cache

  INPUT:\
     ttl - Integer\
     size - Integer\
     baseDNs - List Reference\
     cachep - LDAP Memory Cache Pointer

  OUTPUT:\
     status - Integer\
     cachep - LDAP Memory Cache Pointer

  AVAILABILITY: V3

  EXAMPLE:

  ```
    $status = ldap_memcache_init($ttl,$size,$baseDNs,$cachep);
  ```

- **ldap\_memcache\_set**(ld,cache)

  DESCRIPTION:

  Set the LDAP memory cache for the session

  INPUT:\
     ld - LDAP Session Handle\
     cache - LDAP Memory Cache Pointer

  OUTPUT:\
     status - Integer

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_memcache_set($ld,$cache);
  ```

- **ldap\_memcache\_update**(cache)

  DESCRIPTION:

  Update the specified memory cache

  INPUT:\
     cache - LDAP Memory Cache Pointer

  OUTPUT:\
     status - NONE

  AVAILABILITY: V3

  EXAMPLE:

  ```
    $status = ldap_memcache_update($cache);
  ```

- **ldap\_memfree**(p)

  DESCRIPTION:

  Free memory allocated by the LDAP C API

  INPUT:\
     p - Pointer

  OUTPUT:\
     status - NONE

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_memfree($p);
  ```

- **ldap\_modify**(ld,dn,mods)

  DESCRIPTION:

  Asynchronously modify a LDAP entry

  INPUT:\
     ld - LDAP Session Handle\
     dn - String\
     mods - LDAP Add/Modify Hash

  OUTPUT:\
     status - Integer

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_modify($ld,$dn,$mods);
  ```

- **ldap\_modify\_ext**(ld,dn,mods,serverctrls,clientctrls,msgidp)

  DESCRIPTION:

  Asynchronously modify a LDAP entry w/ Controls

  INPUT:\
     ld - LDAP Session Handle\
     dn - String\
     mods - LDAP Add/Modify Hash\
     serverctrls - LDAP Control List Pointer\
     clientctrls - LDAP Control List Pointer\
     msgidp - Integer

  OUTPUT:\
     status - Integer\
     msgidp - Integer

  AVAILABILITY: V3

  EXAMPLE:

  ```
    $status = ldap_modify_ext($ld,$dn,$mods,$serverctrls,$clientctrls,$msgidp);
  ```

- **ldap\_modify\_ext\_s**(ld,dn,mods,serverctrls,clientctrls)

  DESCRIPTION:

  Synchronously modify a LDAP entry w/ Controls

  INPUT:\
     ld - LDAP Session Handle\
     dn - String\
     mods - LDAP Add/Modify Hash\
     serverctrls - LDAP Control List Pointer\
     clientctrls - LDAP Control List Pointer

  OUTPUT:\
     status - Integer

  AVAILABILITY: V3

  EXAMPLE:

  ```
    $status = ldap_modify_ext_s($ld,$dn,$mods,$serverctrls,$clientctrls);
  ```

- **ldap\_modify\_s**(ld,dn,mods)

  DESCRIPTION:

  Synchronously modify a LDAP entry

  INPUT:\
     ld - LDAP Session Handle\
     dn - String\
     mods - LDAP Add/Modify Hash

  OUTPUT:\
     status - Integer

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_modify_s($ld,$dn,$mods);
  ```

- **ldap\_modrdn**(ld,dn,newrdn)

  DESCRIPTION:

  Asynchronously modify the relative distinguished name of an entry

  INPUT:\
     ld - LDAP Session Handle\
     dn - String\
     newrdn - String

  OUTPUT:\
     status - Integer

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_modrdn($ld,$dn,$newrdn);
  ```

- **ldap\_modrdn\_s**(ld,dn,newrdn)

  DESCRIPTION:

  Synchronously modify the relative distinguished name of an entry

  INPUT:\
     ld - LDAP Session Handle\
     dn - String\
     newrdn - String

  OUTPUT:\
     status - Integer

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_modrdn_s($ld,$dn,$newrdn);
  ```

- **ldap\_modrdn2**(ld,dn,newrdn,deleteoldrdn)

  DESCRIPTION:

  Asynchronously modify the relative distinguished name of an entry.

  INPUT:\
     ld - LDAP Session Handle\
     dn - String\
     newrdn - String\
     deleteoldrdn - Integer

  OUTPUT:\
     status - Integer

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_modrdn2($ld,$dn,$newrdn,$deleteoldrdn);
  ```

- **ldap\_modrdn2\_s**(ld,dn,newrdn,deleteoldrdn)

  DESCRIPTION:

  Synchronously modify the relative distinguished name of an entry.

  INPUT:\
     ld - LDAP Session Handle\
     dn - String\
     newrdn - String\
     deleteoldrdn - Integer

  OUTPUT:\
     status - Integer

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_modrdn2_s($ld,$dn,$newrdn,$deleteoldrdn);
  ```

- **ldap\_msgfree**(lm)

  DESCRIPTION:

  Free memory allocated by a LDAP Message

  INPUT:\
     lm - LDAP Message Pointer

  OUTPUT:\
     status - Integer

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_msgfree($lm);
  ```

- **ldap\_msgid**(lm)

  DESCRIPTION:

  Get the message id number from a LDAP message

  INPUT:\
     lm - LDAP Message Pointer

  OUTPUT:\
     status - Integer

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_msgid($lm);
  ```

- **ldap\_msgtype**(lm)

  DESCRIPTION:

  Get the message type of a LDAP message

  INPUT:\
     lm - LDAP Message Pointer

  OUTPUT:\
     status - Integer

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_msgtype($lm);
  ```

- **ldap\_multisort\_entries**(ld,chain,attr)

  DESCRIPTION:

  Sort entries by multiple keys

  INPUT:\
     ld - LDAP Session Handle\
     chain - LDAP Message Pointer\
     attr - List Reference

  OUTPUT:\
     status - Integer\
     chain - LDAP Message Pointer

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_multisort_entries($ld,$chain,$attr);
  ```

- **ldap\_next\_attribute**(ld,entry,ber)

  DESCRIPTION:

  Get the next attribute for a LDAP entry

  INPUT:\
     ld - LDAP Session Handle\
     entry - LDAP Message Pointer\
     ber - Ber Element Pointer

  OUTPUT:\
     status - String\
     ber - BER Element Pointer

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_next_attribute($ld,$entry,$ber);
  ```

- **ldap\_next\_entry**(ld,entry)

  DESCRIPTION:

  Get the next entry in the result chain

  INPUT:\
     ld - LDAP Session Handle\
     entry - LDAP Message Pointer

  OUTPUT:\
     status - LDAP Message Pointer

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_next_entry($ld,$entry);
  ```

- **ldap\_next\_message**(ld,msg)

  DESCRIPTION:

  Get the next message in the result chain

  INPUT:\
     ld - LDAP Session Handle\
     msg - LDAP Message Pointer

  OUTPUT:\
     status - LDAP Message Pointer

  AVAILABILITY: V3

  EXAMPLE:

  ```
    $status = ldap_next_message($ld,$msg);
  ```

- **ldap\_next\_reference**(ld,ref)

  DESCRIPTION:

  Get the next reference in the result chain

  INPUT:\
     ld - LDAP Session Handle\
     ref - LDAP Message Pointer

  OUTPUT:\
     status - LDAP Message Pointer

  AVAILABILITY: V3

  EXAMPLE:

  ```
    $status = ldap_next_reference($ld,$ref);
  ```

- **ldap\_parse\_entrychange\_control**(ld,ctrls,chgtypep,prevdnp,chgnumpresentp,chgnump)

  DESCRIPTION:

  Parse a LDAP entry change control

  INPUT:\
     ld - LDAP Session Handle\
     ctrls - LDAP Control List Pointer\
     chgtypep - Integer\
     prevdnp - String\
     chgnumpresentp - Integer\
     chgnump - Integer

  OUTPUT:\
     status - Integer\
     chgtypep - Integer\
     prevdnp - String\
     chgnumpresentp - Integer\
     chgnump - Integer

  AVAILABILITY: V3

  EXAMPLE:

  ```
    $status = ldap_parse_entrychange_control($ld,$ctrls,$chgtypep,$prevdnp,$chgnumpresentp,$chgnump);
  ```

- **ldap\_parse\_extended\_result**(ld,res,retoidp,retdatap,freeit)

  DESCRIPTION:

  Parse a LDAP extended result

  INPUT:\
     ld - LDAP Session Handle\
     res - LDAP Message Pointer\
     retoidp - String\
     freeit - Integer

  OUTPUT:\
     status - Integer\
     retoidp - String\
     retdatap - Binary List Reference

  AVAILABILITY: V3

  EXAMPLE:

  ```
    $status = ldap_parse_extended_result($ld,$res,$retoidp,$retdatap,$freeit);
  ```

- **ldap\_parse\_reference**(ld,ref,referalsp,serverctrlsp,freeit)

  DESCRIPTION:

  Parse a LDAP Reference

  INPUT:\
     ld - LDAP Session Handle\
     ref - LDAP Message Pointer\
     referalsp - List Reference\
     serverctrlsp - LDAP Control List Pointer\
     freeit - Integer

  OUTPUT:\
     status - Integer\
     referalsp - List Reference\
     serverctrlsp - LDAP Control List Pointer

  AVAILABILITY: V3

  EXAMPLE:

  ```
    $status = ldap_parse_reference($ld,$ref,$referalsp,$serverctrlsp,$freeit);
  ```

- **ldap\_parse\_result**(ld,res,errcodep,matcheddnp,errmsgp,referralsp,serverctrlsp,freeit)

  DESCRIPTION:

  Parse a LDAP result

  INPUT:\
     ld - LDAP Session Handle\
     res - LDAP Message Pointer\
     errcodep - Integer\
     matcheddnp - String\
     errmsgp - String\
     referralsp - List Reference\
     serverctrlsp - LDAP Control List Pointer\
     freeit - Integer

  OUTPUT:\
     status - Integer\
     errcodep - Integer\
     matcheddnp - String\
     errmsgp - String\
     referralsp - List Reference\
     serverctrlsp - LDAP Control List Pointer

  AVAILABILITY: V3

  EXAMPLE:

  ```
    $status = ldap_parse_result($ld,$res,$errcodep,$matcheddnp,$errmsgp,$referralsp,$serverctrlsp,$freeit);
  ```

- **ldap\_parse\_sasl\_bind\_result**(ld,res,servercredp,freeit)

  DESCRIPTION:

  Parse the results of an SASL bind operation

  INPUT:\
     ld - LDAP Session Handle\
     res - LDAP Message Pointer\
     freeit - Integer

  OUTPUT:\
     status - Integer\
     servercredp -

  AVAILABILITY: V3

  EXAMPLE:

  ```
    $status = ldap_parse_sasl_bind_result($ld,$res,$servercredp,$freeit);
  ```

- **ldap\_parse\_sort\_control**(ld,ctrls,result,attribute)

  DESCRIPTION:

  Parse a LDAP sort control

  INPUT:\
     ld - LDAP Session Handle\
     ctrls - LDAP Control List Pointer\
     result - LDAP Message Pointer\
     attribute - String

  OUTPUT:\
     status - Integer\
     result - LDAP Message Pointer\
     attribute - String

  AVAILABILITY: V3

  EXAMPLE:

  ```
    $status = ldap_parse_sort_control($ld,$ctrls,$result,$attribute);
  ```

- **ldap\_parse\_virtuallist\_control**(ld,ctrls,target\_posp,list\_sizep,errcodep)

  DESCRIPTION:

  Parse a LDAP virtual list control

  INPUT:\
     ld - LDAP Session Handle\
     ctrls - LDAP Control List Pointer\
     target\_posp - Integer\
     list\_sizep - Integer\
     errcodep - Integer

  OUTPUT:\
     status - Integer\
     target\_posp - Integer\
     list\_sizep - Integer\
     errcodep - Integer

  AVAILABILITY: V3

  EXAMPLE:

  ```
    $status = ldap_parse_virtuallist_control($ld,$ctrls,$target_posp,$list_sizep,$errcodep);
  ```

- **ldap\_perror**(ld,s)

  DESCRIPTION:

  Print a LDAP error message

  INPUT:\
     ld - LDAP Session Handle\
     s - String

  OUTPUT:\
     status - NONE

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_perror($ld,$s);
  ```

- **ldap\_rename**(ld,dn,newrdn,newparent,deleteoldrdn,serverctrls,clientctrls,msgidp)

  DESCRIPTION:

  Asynchronously rename a LDAP entry

  INPUT:\
     ld - LDAP Session Handle\
     dn - String\
     newrdn - String\
     newparent - String\
     deleteoldrdn - Integer\
     serverctrls - LDAP Control List Pointer\
     clientctrls - LDAP Control List Pointer\
     msgidp - Integer

  OUTPUT:\
     status - Integer\
     msgidp - Integer

  AVAILABILITY: V3

  EXAMPLE:

  ```
    $status = ldap_rename($ld,$dn,$newrdn,$newparent,$deleteoldrdn,$serverctrls,$clientctrls,$msgidp);
  ```

- **ldap\_rename\_s**(ld,dn,newrdn,newparent,deleteoldrdn,serverctrls,clientctrls)

  DESCRIPTION:

  Synchronously rename a LDAP entry

  INPUT:\
     ld - LDAP Session Handle\
     dn - String\
     newrdn - String\
     newparent - String\
     deleteoldrdn - Integer\
     serverctrls - LDAP Control List Pointer\
     clientctrls - LDAP Control List Pointer

  OUTPUT:\
     status - Integer

  AVAILABILITY: V3

  EXAMPLE:

  ```
    $status = ldap_rename_s($ld,$dn,$newrdn,$newparent,$deleteoldrdn,$serverctrls,$clientctrls);
  ```

- **ldap\_result**(ld,msgid,all,timeout,result)

  DESCRIPTION:

  Get the result for an asynchronous LDAP operation

  INPUT:\
     ld - LDAP Session Handle\
     msgid - Integer\
     all - Integer\
     timeout - Time in Seconds\
     result - LDAP Message Pointer

  OUTPUT:\
     status - Integer\
     result - LDAP Message Pointer

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_result($ld,$msgid,$all,$timeout,$result);
  ```

- **ldap\_result2error**(ld,r,freeit)

  DESCRIPTION:

  Get the error number for a given result

  INPUT:\
     ld - LDAP Session Handle\
     r - LDAP Message Pointer\
     freeit - Integer

  OUTPUT:\
     status - Integer

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_result2error($ld,$r,$freeit);
  ```

- **ldap\_sasl\_bind**(ld,dn,mechanism,cred,serverctrls,clientctrls,msgidp)

  DESCRIPTION:

  Asynchronously bind to the LDAP server using a SASL mechanism

  INPUT:\
     ld - LDAP Session Handle\
     dn - String\
     mechanism - String\
     cred - Binary String\
     serverctrls - LDAP Control List Pointer\
     clientctrls - LDAP Control List Pointer\
     msgidp - Integer

  OUTPUT:\
     status - Integer\
     msgidp - Integer

  AVAILABILITY: V3

  EXAMPLE:

  ```
    $status = ldap_sasl_bind($ld,$dn,$mechanism,$cred,$serverctrls,$clientctrls,$msgidp);
  ```

- **ldap\_sasl\_bind\_s**(ld,dn,mechanism,cred,serverctrls,clientctrls,servercredp)

  DESCRIPTION:

  Synchronously bind to a LDAP server using a SASL mechanism

  INPUT:\
     ld - LDAP Session Handle\
     dn - String\
     mechanism - String\
     cred - Binary String\
     serverctrls - LDAP Control List Pointer\
     clientctrls - LDAP Control List Pointer

  OUTPUT:\
     status - Integer\
     servercredp -

  AVAILABILITY: V3

  EXAMPLE:

  ```
    $status = ldap_sasl_bind_s($ld,$dn,$mechanism,$cred,$serverctrls,$clientctrls,$servercredp);
  ```

- **ldap\_search**(ld,base,scope,filter,attrs,attrsonly)

  DESCRIPTION:

  Asynchronously search the LDAP server

  INPUT:\
     ld - LDAP Session Handle\
     base - String\
     scope - Integer\
     filter - String\
     attrs - List Reference\
     attrsonly - Integer

  OUTPUT:\
     status - Integer

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_search($ld,$base,$scope,$filter,$attrs,$attrsonly);
  ```

- **ldap\_search\_ext**(ld,base,scope,filter,attrs,attrsonly,serverctrls,clientctrls,timeoutp,sizelimit,msgidp)

  DESCRIPTION:

  Asynchronously search the LDAP server w/ Controls

  INPUT:\
     ld - LDAP Session Handle\
     base - String\
     scope - Integer\
     filter - String\
     attrs - List Reference\
     attrsonly - Integer\
     serverctrls - LDAP Control List Pointer\
     clientctrls - LDAP Control List Pointer\
     timeoutp - Time in Seconds\
     sizelimit - Integer\
     msgidp - Integer

  OUTPUT:\
     status - Integer\
     msgidp - Integer

  AVAILABILITY: V3

  EXAMPLE:

  ```
    $status = ldap_search_ext($ld,$base,$scope,$filter,$attrs,$attrsonly,$serverctrls,$clientctrls,$timeoutp,$sizelimit,$msgidp);
  ```

- **ldap\_search\_ext\_s**(ld,base,scope,filter,attrs,attrsonly,serverctrls,clientctrls,timeoutp,sizelimit,res)

  DESCRIPTION:

  Synchronously search the LDAP server w/ Controls

  INPUT:\
     ld - LDAP Session Handle\
     base - String\
     scope - Integer\
     filter - String\
     attrs - List Reference\
     attrsonly - Integer\
     serverctrls - LDAP Control List Pointer\
     clientctrls - LDAP Control List Pointer\
     timeoutp - Time in Seconds\
     sizelimit - Integer\
     res - LDAP Message Pointer

  OUTPUT:\
     status - Integer\
     res - LDAP Message Pointer

  AVAILABILITY: V3

  EXAMPLE:

  ```
    $status = ldap_search_ext_s($ld,$base,$scope,$filter,$attrs,$attrsonly,$serverctrls,$clientctrls,$timeoutp,$sizelimit,$res);
  ```

- **ldap\_search\_s**(ld,base,scope,filter,attrs,attrsonly,res)

  DESCRIPTION:

  Synchronously search the LDAP server

  INPUT:\
     ld - LDAP Session Handle\
     base - String\
     scope - Integer\
     filter - String\
     attrs - List Reference\
     attrsonly - Integer\
     res - LDAP Message Pointer

  OUTPUT:\
     status - Integer\
     res - LDAP Message Pointer

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_search_s($ld,$base,$scope,$filter,$attrs,$attrsonly,$res);
  ```

- **ldap\_search\_st**(ld,base,scope,filter,attrs,attrsonly,timeout,res)

  DESCRIPTION:

  Synchronously search the LDAP server w/ Timeout

  INPUT:\
     ld - LDAP Session Handle\
     base - String\
     scope - Integer\
     filter - String\
     attrs - List Reference\
     attrsonly - Integer\
     timeout - Time in Seconds\
     res - LDAP Message Pointer

  OUTPUT:\
     status - Integer\
     res - LDAP Message Pointer

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_search_st($ld,$base,$scope,$filter,$attrs,$attrsonly,$timeout,$res);
  ```

- **ldap\_set\_filter\_additions**(lfdp,prefix,suffix)

  DESCRIPTION:

  Add a prefix and suffix for filter generation

  INPUT:\
     lfdp - LDAP Filter Description Pointer\
     prefix - String\
     suffix - String

  OUTPUT:\
     status - Integer

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_set_filter_additions($lfdp,$prefix,$suffix);
  ```

- **ldap\_set\_lderrno**(ld,e,m,s)

  DESCRIPTION:

  Set the LDAP error structure

  INPUT:\
     ld - LDAP Session Handle\
     e - Integer\
     m - String\
     s - String

  OUTPUT:\
     status - Integer

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_set_lderrno($ld,$e,$m,$s);
  ```

- **ldap\_set\_option**(ld,option,optdata)

  DESCRIPTION:

  Set a LDAP session option

  INPUT:\
     ld - LDAP Session Handle\
     option - Integer\
     optdata - Integer

  OUTPUT:\
     status - Integer

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_set_option($ld,$option,$optdata);
  ```

- **ldap\_set\_rebind\_proc**(ld,rebindproc)

  DESCRIPTION:

  Set the LDAP rebind process

  INPUT:\
     ld - LDAP Session Handle

  OUTPUT:\
     status - NONE

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_set_rebind_proc($ld,$rebindproc);
  ```

- **ldap\_simple\_bind**(ld,who,passwd)

  DESCRIPTION:

  Asynchronously bind to the LDAP server using simple authentication

  INPUT:\
     ld - LDAP Session Handle\
     who - String\
     passwd - String

  OUTPUT:\
     status - Integer

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_simple_bind($ld,$who,$passwd);
  ```

- **ldap\_simple\_bind\_s**(ld,who,passwd)

  DESCRIPTION:

  Synchronously bind to the LDAP server using simple authentication

  INPUT:\
     ld - LDAP Session Handle\
     who - String\
     passwd - String

  OUTPUT:\
     status - Integer

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_simple_bind_s($ld,$who,$passwd);
  ```

- **ldap\_sort\_entries**(ld,chain,attr)

  DESCRIPTION:

  Sort the results of a LDAP search

  INPUT:\
     ld - LDAP Session Handle\
     chain - LDAP Message Pointer\
     attr - String

  OUTPUT:\
     status - Integer\
     chain - LDAP Message Pointer

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_sort_entries($ld,$chain,$attr);
  ```

- **ldap\_unbind**(ld)

  DESCRIPTION:

  Asynchronously unbind from the LDAP server

  INPUT:\
     ld - LDAP Session Handle

  OUTPUT:\
     status - Integer

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_unbind($ld);
  ```

- **ldap\_unbind\_s**(ld)

  DESCRIPTION:

  Synchronously unbind from a LDAP server

  INPUT:\
     ld - LDAP Session Handle

  OUTPUT:\
     status - Integer

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_unbind_s($ld);
  ```

- **ldap\_url\_parse**(url)

  DESCRIPTION:

  Parse a LDAP URL, returning a HASH of its components

  INPUT:\
     url - String

  OUTPUT:\
     status -

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_url_parse($url);
  ```

- **ldap\_url\_search**(ld,url,attrsonly)

  DESCRIPTION:

  Asynchronously search using a LDAP URL

  INPUT:\
     ld - LDAP Session Handle\
     url - String\
     attrsonly - Integer

  OUTPUT:\
     status - Integer

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_url_search($ld,$url,$attrsonly);
  ```

- **ldap\_url\_search\_s**(ld,url,attrsonly,res)

  DESCRIPTION:

  Synchronously search using a LDAP URL

  INPUT:\
     ld - LDAP Session Handle\
     url - String\
     attrsonly - Integer\
     res - LDAP Message Pointer

  OUTPUT:\
     status - Integer\
     res - LDAP Message Pointer

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_url_search_s($ld,$url,$attrsonly,$res);
  ```

- **ldap\_url\_search\_st**(ld,url,attrsonly,timeout,res)

  DESCRIPTION:

  Synchronously search using a LDAP URL w/ timeout

  INPUT:\
     ld - LDAP Session Handle\
     url - String\
     attrsonly - Integer\
     timeout - Time in Seconds\
     res - LDAP Message Pointer

  OUTPUT:\
     status - Integer\
     res - LDAP Message Pointer

  AVAILABILITY: V2/V3

  EXAMPLE:

  ```
    $status = ldap_url_search_st($ld,$url,$attrsonly,$timeout,$res);
  ```

- **prldap\_install\_routines**(ld,shared)

  DESCRIPTION:

  Install NSPR I/O, threading, and DNS functions so they can be used by the LDAP connection (ld).

  If 'ld' is NULL, the functions are installed as the default functions for all new LDAP \* handles).

  INPUT:\
     ld - LDAP Session Handle\
     shared - True if the LDAP \* handle is used in an MT context

  OUTPUT:\
     status - Integer

  AVAILABILITY: V3

## CREDITS

Most of the Perl API module was written by Clayton Donley to interface with C API routines from Netscape Communications Corp., Inc.

## BUGS

Documentation needs much work. LDAPv3 calls not tested or supported in this version. NT can not use Perl Rebind processes, must use 'ldap\_set\_default\_rebindproc'. Possible memory leak in ldap\_search\* is being investigated.

## SEE ALSO

Mozilla::LDAP::Conn, Mozilla::LDAP::Entry, and Perl

## POD ERRORS

Hey! **The above document had some coding errors, which are explained below:**

- Around line 500:

  '=item' outside of any '=over'

- Around line 2959:

  You forgot a '=back' before '=head1'
