---
name: "cldap_search_s"
section: "3"
platform: "linux"
package: "libopenldap-dev"
version: "1:1.2.12-1"
release: "Debian 2.2 (Potato)"
platforms: ["linux"]
url: "https://new.carta.tech/cldap_search_s"
---

# cldap\_search\_s(3)

Connectionless LDAP Search

## NAME

cldap\_search\_s - Connectionless LDAP Search

## SYNOPSIS

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

**int cldap\_search\_s( ld, base, scope, filter, attrs, attrsonly,**\
 	**res, logdn )** **LDAP \*ld;** **char \*base;** **int scope;** **char \*filter;** **char \*\*attrs;** **int attrsonly;** **LDAPMessage \*\*res;** **char \*logdn;**

## DESCRIPTION

**The** **cldap\_search\_s()** **routine performs an LDAP search using the** **Connectionless LDAP (CLDAP) protocol.**

**cldap\_search\_s()** **has parameters and behavior identical to that of** [**ldap\_search\_s**(3)](/ldap_search_s/3.md), **except for the addition of the** *logdn* **parameter.  logdn should contain a distinguished name to be used only** **for logging purposed by the LDAP server.  It should be in the text** **format described by RFC 1779 "A String Representation of Distinguished Names".**

## RETRANSMISSION ALGORITHM

**cldap\_search\_s()** **operates using the CLDAP protocol over** **udp**(4p). **Since UDP is a non-reliable protocol, a retry mechanism is used to increase** **reliability.  The** [**cldap\_setretryinfo**(3)](/cldap_setretryinfo/3.md) **routine can be used to set two** **retry parameters:**  *tries***, a count of the number of times to send** **a search request and** *timeout***, an initial timeout that determines** **how long to wait for a response before re-trying.**  *timeout* **is** **specified seconds.  These values are stored in the ld\_cldaptries and** **ld\_cldaptimeout members of the** *ld* **LDAP structure, and the** **default values set in** [**ldap\_open**(3)](/ldap_open/3.md) **are 4 and 3 respectively.  The retransmission algorithm used is:**

**Step 1.  Set the current timeout to ld\_cldaptimeout seconds, and** **the current LDAP server address to the first LDAP server found during** **the** [**ldap\_open**(3)](/ldap_open/3.md) **call.**

**Step 2:  Send the search request to the current LDAP server address.**

**Step 3:  Set the wait timeout to the current timeout divided by the** **number of server addresses found during** [**ldap\_open**(3)](/ldap_open/3.md) **or to one** **second, whichever is larger.  Wait at most that long for a response; if** **a response is received, STOP.  Note that the wait timeout is always rounded** **down to the next lowest second.**

**Step 5:  Repeat steps 2 and 3 for each LDAP server address.**

**Step 6:  Set the current timeout to twice its previous value and repeat** **Steps 2 through 6 a maximum of** *tries* **times.**

## RETRANSMISSION EXAMPLE

**Assume that the default values for** *tries* **and** *timeout* **of** **4 tries and 3 seconds are used.  Further, assume that a space-separated** **list of two hosts, each with one address, was passed to** [**cldap\_open**(3)](/cldap_open/3.md). **The pattern of requests sent will be (stopping as soon as a response is** **received):**

```
  Time		Search Request Sent To:
   +0			Host A try 1
   +1  (0+3/2)		Host B try 1
   +2  (1+3/2)		Host A try 2
   +5  (2+6/2)		Host B try 2
   +8  (5+6/2)		Host A try 3
   +14 (8+12/2)		Host B try 3
   +20 (14+12/2)	Host A try 4
   +32 (20+24/2)	Host B try 4
   +44 (20+24/2)	(give up - no response)
```

## ERRORS

**cldap\_search\_s()** *returns LDAP\_SUCCESS if a search was successful and the* *appropriate LDAP error code otherwise.  See* [**ldap\_error**(3)](/ldap_error/3.md) *for more information.*

## SEE ALSO

[**ldap**(3)](/ldap/3.md), [**ldap\_error**(3)](/ldap_error/3.md), [**ldap\_search\_s**(3)](/ldap_search_s/3.md), [**cldap\_open**(3)](/cldap_open/3.md), [**cldap\_setretryinfo**(3)](/cldap_setretryinfo/3.md), [**cldap\_close**(3)](/cldap_close/3.md), **udp**(4p)

## ACKNOWLEDGEMENTS

**OpenLDAP** *is developed and maintained by The OpenLDAP Project (http://www.openldap.org/).* **OpenLDAP** *is derived from University of Michigan LDAP 3.3 Release.*
