8212 manpages contain obsolete references
[unleashed.git] / usr / src / man / man3ldap / ldap.3ldap
blob6644b3c6bf698d833a8bf07f71370c049376bf34
1 '\" te
2 .\" Copyright (C) 1990, Regents of the University of Michigan.  All Rights Reserved.
3 .\" Portions Copyright (C) 2002, Sun Microsystems, Inc. All Rights Reserved.
4 .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License").  You may not use this file except in compliance with the License.
5 .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.  See the License for the specific language governing permissions and limitations under the License.
6 .\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE.  If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
7 .TH LDAP 3LDAP "May 13, 2017"
8 .SH NAME
9 ldap \- Lightweight Directory Access Protocol package
10 .SH SYNOPSIS
11 .LP
12 .nf
13 cc[ \fIflag\fR... ] \fIfile\fR... -lldap[ \fIlibrary\fR... ]
14 #include <lber.h>
15 #include <ldap.h>
16 .fi
18 .SH DESCRIPTION
19 .LP
20 The Lightweight Directory Access Protocol ("LDAP") package includes
21 various command line LDAP clients and a LDAP client library to provide
22 programmatic access to the LDAP protocol. This man page gives an overview of
23 the LDAP client library functions.
24 .sp
25 .LP
26 An application might use the LDAP client library functions as follows. The
27 application would initialize a LDAP session with a LDAP server by calling
28 \fBldap_init\fR(3LDAP). Next, it authenticates to the LDAP server by calling
29 \fBldap_sasl_bind\fR(3LDAP) and friends. It may perform some LDAP operations
30 and obtain results by calling \fBldap_search\fR(3LDAP) and friends. To parse
31 the results returned from these functions, it calls
32 \fBldap_parse_result\fR(3LDAP), \fBldap_next_entry\fR(3LDAP), and
33 \fBldap_first_entry\fR(3LDAP) and others. It closes the LDAP session by calling
34 \fBldap_unbind\fR(3LDAP).
35 .sp
36 .LP
37 LDAP operations can be either synchronous or asynchronous. By convention, the
38 names of the synchronous functions end with "_s." For example, a synchronous
39 binding to the LDAP server can be performed by calling
40 \fBldap_sasl_bind_s\fR(3LDAP). Complete an asynchronous binding with
41 \fBldap_sasl_bind\fR(3LDAP). All synchronous functions return the actual
42 outcome of the operation, either \fBLDAP_SUCCESS\fR or an error code.
43 Asynchronous routines provide an invocation identifier which can be used to
44 obtain the result of a specific operation by passing it to
45 the \fBldap_result\fR(3LDAP) function.
46 .SS "Initializing a LDAP session"
47 .LP
48 Initializing a LDAP session involves calling the \fBldap_init\fR(3LDAP)
49 function. However, the call does not actually open a connection to the LDAP
50 server. It merely initializes a LDAP structure that represents the session. The
51 connection is opened when the first operation is attempted. Unlike
52 \fBldap_init()\fR, \fBldap_open\fR(3LDAP) attempts to open a connection with
53 the LDAP server. However, the use of \fBldap_open()\fR is deprecated.
54 .SS "Authenticating to a LDAP server"
55 .LP
56 The \fBldap_sasl_bind\fR(3LDAP) and \fBldap_sasl_bind_s\fR(3LDAP) functions
57 provide general and extensible authenticaton for an LDAP client to a LDAP
58 server. Both use the Simple Authentication Security Layer (SASL). Simplified
59 routines \fBldap_simple_bind\fR(3LDAP) and \fBldap_simple_bind_s\fR(3LDAP) use
60 cleartext passwords to bind to the LDAP server. Use of \fBldap_bind\fR(3LDAP)
61 and \fBldap_bind_s\fR(3LDAP)(3LDAP) is deprecated.
62 .SS "Searching a LDAP directory"
63 .LP
64 Search for an entry in a LDAP directory by calling the
65 \fBldap_search_ext\fR(3LDAP) or the \fBldap_search_ext_s\fR(3LDAP) functions.
66 These functions support LDAPv3 server controls, client controls and variable
67 size and time limits as arguments for each search operation.
68 \fBldap_search\fR(3LDAP) and \fBldap_search_s\fR(3LDAP) are identical functions
69 but do not support the controls and limits as arguments to the call.
70 .SS "Adding or Deleting an entry"
71 .LP
72 Use \fBldap_add_ext\fR(3LDAP) and \fBldap_delete_ext\fR(3LDAP) to add or delete
73 entries in a LDAP directory server. The synchronous counterparts to these
74 functions are \fBldap_add_ext_s\fR(3LDAP) and \fBldap_delete_ext_s\fR(3LDAP).
75 The \fBldap_add\fR(3LDAP), \fBldap_add_s\fR(3LDAP), \fBldap_delete\fR(3LDAP),
76 and \fBldap_delete_s\fR(3LDAP) provide identical functionality to add and to
77 delete entries, but they do not support LDAP v3 server and client controls.
78 .SS "Modifying Entries"
79 .LP
80 Use \fBldap_modify_ext\fR(3LDAP) and \fBldap_modify_ext_s\fR(3LDAP) to modify
81 an existing entry in a LDAP server that supports for LDAPv3 server and client
82 controls. Similarly, use \fBldap_rename\fR(3LDAP) and
83 \fBldap_rename_s\fR(3LDAP) to change the name of an LDAP entry. The
84 \fBldap_modrdn\fR(3LDAP), \fBldap_modrdn_s\fR(3LDAP), \fBldap_modrdn2\fR(3LDAP)
85 and \fBldap_modrdn2_s\fR(3LDAP) interfaces are deprecated.
86 .SS "Obtaining Results"
87 .LP
88 Use \fBldap_result\fR(3LDAP) to obtain the results of a previous asynchronous
89 operation. For all LDAP operations other than search, only one message is
90 returned. For the search operation, a list of result messages can be returned.
91 .SS "Handling Errors and Parsing Results"
92 .LP
93 Use the \fBldap_parse_result\fR(3LDAP),
94 \fBldap_parse_sasl_bind_result\fR(3LDAP), and the
95 \fBldap_parse_extended_result\fR(3LDAP) functions to extract required
96 information from results and to handle the returned errors. To convert a
97 numeric error code into a null-terminated character string message describing
98 the error, use \fBldap_err2string\fR(3LDAP). The \fBldap_result2error\fR(3LDAP)
99 and \fBldap_perror\fR(3LDAP) functions are deprecated. To step through the list
100 of messages in a result returned by \fBldap_result()\fR, use
101 \fBldap_first_message\fR(3LDAP) and \fBldap_next_message\fR(3LDAP).
102 \fBldap_count_messages\fR(3LDAP) returns the number of messages contained in
103 the list.
106 You can use \fBldap_first_entry\fR(3LDAP) and \fBldap_next_entry\fR(3LDAP) to
107 step through and obtain a list of entries from a list of messages returned by a
108 search result. \fBldap_count_entries\fR(3LDAP) returns the number of entries
109 contained in a list of messages. Call either \fBldap_first_attribute\fR(3LDAP)
110 and \fBldap_next_attribute\fR(3LDAP) to step through a list of attributes
111 associated with an entry. Retrieve the values of a given attribute by calling
112 \fBldap_get_values\fR(3LDAP) and \fBldap_get_values_len\fR(3LDAP). Count the
113 number of values returned by using \fBldap_count_values\fR(3LDAP) and
114 \fBldap_count_values_len\fR(3LDAP).
117 Use the \fBldap_get_lang_values\fR(3LDAP) and
118 \fBldap_get_lang_values_len\fR(3LDAP) to return an attribute's values that
119 matches a specified language subtype. The \fBldap_get_lang_values()\fR function
120 returns an array of an attribute's string values that matches a specified
121 language subtype. To retrieve the binary data from an attribute, call the
122 \fBldap_get_lang_values_len()\fR function instead.
123 .SS "Uniform Resource Locators (URLS)"
125 You can use the \fBldap_url\fR(3LDAP)functions to test a URL to verify that it
126 is an LDAP URL, to parse LDAP URLs into their component pieces, to initiate
127 searches directly using an LDAP URL, and to retrieve the URL associated with a
128 DNS domain name or a distinguished name.
129 .SS "User Friendly Naming"
131 The \fBldap_ufn\fR(3LDAP) functions implement a user friendly naming scheme by
132 means of LDAP. This scheme allows you to look up entries using fuzzy, untyped
133 names like "mark smith, umich, us".
134 .SS "Caching"
136 The \fBldap_memcache\fR(3LDAP) functions provide an in-memory client side cache
137 to store search requests. Caching improves performance and reduces network
138 bandwidth when a client makes repeated requests.
139 .SS "Utility Functions"
141 There are also various utility functions. You can use the
142 \fBldap_sort\fR(3LDAP) functions are used to sort the entries and values
143 returned by means of the ldap search functions. The \fBldap_friendly\fR(3LDAP)
144 functions will map from short two letter country codes or other strings to
145 longer "friendlier" names. Use the \fBldap_charset\fR(3LDAP) functions to
146 translate to and from the T.61 character set that is used for many character
147 strings in the LDAP protocol.
148 .SS "Generating Filters"
150 Make calls to \fBldap_init_getfilter\fR(3LDAP) and \fBldap_search\fR(3LDAP) to
151 generate filters to be used in \fBldap_search\fR(3LDAP) and
152 \fBldap_search_s\fR(3LDAP). \fBldap_init_getfilter()\fR reads
153 \fBldapfilter.conf\fR(4), the LDAP configuration file, while
154 \fBldap_init_getfilter_buf()\fR reads the configuration information from
155 \fIbuf\fR of length \fIbuflen\fR. \fBldap_getfilter_free\fR(3LDAP) frees memory
156 that has been allocated by means of \fBldap_init_getfilter()\fR.
157 .SS "BER Library"
159 The LDAP package includes a set of lightweight Basic Encoding Rules ("BER)"
160 functions. The LDAP library functions use the BER functions to encode and
161 decode LDAP protocol elements through the slightly simplified BER defined by
162 LDAP. They are not normally used directly by an LDAP application program will
163 not normally use the BER functions directly. Instead, these functions provide a
164 \fBprintf()\fR and \fBscanf()\fR-like interface, as well as lower-level access.
165 .SH LIST OF INTERFACES
166 .ne 2
168 \fB\fBldap_open\fR(3LDAP)\fR
170 .sp .6
171 .RS 4n
172 Deprecated. Use \fBldap_init\fR(3LDAP).
176 .ne 2
178 \fB\fBldap_init\fR(3LDAP)\fR
180 .sp .6
181 .RS 4n
182 Initialize a session with a LDAP server without opening a connection to a
183 server.
187 .ne 2
189 \fB\fBldap_result\fR(3LDAP)\fR
191 .sp .6
192 .RS 4n
193 Obtain the result from a previous asynchronous operation.
197 .ne 2
199 \fB\fBldap_abandon\fR(3LDAP)\fR
201 .sp .6
202 .RS 4n
203 Abandon or abort an asynchronous operation.
207 .ne 2
209 \fB\fBldap_add\fR(3LDAP)\fR
211 .sp .6
212 .RS 4n
213 Asynchronously add an entry
217 .ne 2
219 \fB\fBldap_add_s\fR(3LDAP)\fR
221 .sp .6
222 .RS 4n
223 Synchronously add an entry.
227 .ne 2
229 \fB\fBldap_add_ext\fR(3LDAP)\fR
231 .sp .6
232 .RS 4n
233 Asynchronously add an entry with support for LDAPv3 controls.
237 .ne 2
239 \fB\fBldap_add_ext_s\fR(3LDAP)\fR
241 .sp .6
242 .RS 4n
243 Synchronously add an entry with support for LDAPv3 controls.
247 .ne 2
249 \fB\fBldap_bind\fR(3LDAP)\fR
251 .sp .6
252 .RS 4n
253 Deprecated. Use \fBldap_sasl_bind\fR(3LDAP) or \fBldap_simple_bind\fR(3LDAP).
257 .ne 2
259 \fB\fBldap_sasl_bind\fR(3LDAP)\fR
261 .sp .6
262 .RS 4n
263 Asynchronously bind to the directory using SASL authentication
267 .ne 2
269 \fB\fBldap_sasl_bind_s\fR(3LDAP)\fR
271 .sp .6
272 .RS 4n
273 Synchronously bind to the directory using SASL authentication
277 .ne 2
279 \fB\fBldap_bind_s\fR(3LDAP)\fR
281 .sp .6
282 .RS 4n
283 Deprecated. Use \fBldap_sasl_bind_s\fR(3LDAP) or
284 \fBldap_simple_bind_s\fR(3LDAP).
288 .ne 2
290 \fB\fBldap_simple_bind\fR(3LDAP)\fR
292 .sp .6
293 .RS 4n
294 Asynchronously bind to the directory using simple authentication.
298 .ne 2
300 \fB\fBldap_simple_bind_s\fR(3LDAP)\fR
302 .sp .6
303 .RS 4n
304 Synchronously bind to the directory using simple authentication.
308 .ne 2
310 \fB\fBldap_unbind\fR(3LDAP)\fR
312 .sp .6
313 .RS 4n
314 Synchronously unbind from the LDAP server, close the connection, and dispose
315 the session handle.
319 .ne 2
321 \fB\fBldap_unbind_ext\fR(3LDAP)\fR
323 .sp .6
324 .RS 4n
325 Synchronously unbind from the LDAP server and close the connection.
326 \fBldap_unbind_ext()\fR allows you to explicitly include both server and client
327 controls in the unbind request.
331 .ne 2
333 \fB\fBldap_set_rebind_proc\fR(3LDAP)\fR
335 .sp .6
336 .RS 4n
337 Set callback function for obtaining credentials from a referral.
341 .ne 2
343 \fB\fBldap_memcache_init\fR(3LDAP)\fR
345 .sp .6
346 .RS 4n
347 Create the in-memory client side cache.
351 .ne 2
353 \fB\fBldap_memcache_set\fR(3LDAP)\fR
355 .sp .6
356 .RS 4n
357 Associate an in-memory cache that has been already created by calling the
358 \fBldap_memcache_init\fR(3LDAP) function with an LDAP connection handle.
362 .ne 2
364 \fB\fBldap_memcache_get\fR(3LDAP)\fR
366 .sp .6
367 .RS 4n
368 Get the cache associated with the specified LDAP structure.
372 .ne 2
374 \fB\fBldap_memcache_flush\fR(3LDAP)\fR
376 .sp .6
377 .RS 4n
378 Flushes search requests from the cache.
382 .ne 2
384 \fB\fBldap_memcache_destroy\fR(3LDAP)\fR
386 .sp .6
387 .RS 4n
388 Frees the specified \fBLDAPMemCache\fR structure pointed to by cache from
389 memory.
393 .ne 2
395 \fB\fBldap_memcache_update\fR(3LDAP)\fR
397 .sp .6
398 .RS 4n
399 Checks the cache for items that have expired and removes them.
403 .ne 2
405 \fB\fBldap_compare\fR(3LDAP)\fR
407 .sp .6
408 .RS 4n
409 Asynchronous compare with a directory entry.
413 .ne 2
415 \fB\fBldap_compare_s\fR(3LDAP)\fR
417 .sp .6
418 .RS 4n
419 Synchronous compare with a directory entry.
423 .ne 2
425 \fB\fBldap_compare_ext\fR(3LDAP)\fR
427 .sp .6
428 .RS 4n
429 Asynchronous compare with a directory entry, with support for LDAPv3 controls.
433 .ne 2
435 \fB\fBldap_compare_ext_s\fR(3LDAP)\fR
437 .sp .6
438 .RS 4n
439 Synchronous compare with a directory entry, with support for LDAPv3 controls.
443 .ne 2
445 \fB\fBldap_control_free\fR(3LDAP)\fR
447 .sp .6
448 .RS 4n
449 Dispose of an LDAP control.
453 .ne 2
455 \fB\fBldap_controls_free\fR(3LDAP)\fR
457 .sp .6
458 .RS 4n
459 Dispose of an array of LDAP controls.
463 .ne 2
465 \fB\fBldap_delete\fR(3LDAP)\fR
467 .sp .6
468 .RS 4n
469 Asynchronously delete an entry.
473 .ne 2
475 \fB\fBldap_delete_s\fR(3LDAP)\fR
477 .sp .6
478 .RS 4n
479 Synchronously delete an entry.
483 .ne 2
485 \fB\fBldap_delete_ext\fR(3LDAP)\fR
487 .sp .6
488 .RS 4n
489 Asynchronously delete an entry, with support for LDAPv3 controls.
493 .ne 2
495 \fB\fBldap_delete_ext_s\fR(3LDAP)\fR
497 .sp .6
498 .RS 4n
499 Synchronously delete an entry, with support for LDAPv3 controls.
503 .ne 2
505 \fB\fBldap_init_templates\fR(3LDAP)\fR
507 .sp .6
508 .RS 4n
509 Read a sequence of templates from a LDAP template configuration file.
513 .ne 2
515 \fB\fBldap_init_templates_buf\fR(3LDAP)\fR
517 .sp .6
518 .RS 4n
519 Read a sequence of templates from a buffer.
523 .ne 2
525 \fB\fBldap_free_templates\fR(3LDAP)\fR
527 .sp .6
528 .RS 4n
529 Dispose of the templates allocated.
533 .ne 2
535 \fB\fBldap_first_reference\fR(3LDAP)\fR
537 .sp .6
538 .RS 4n
539 Step through a list of continuation references from a search result.
543 .ne 2
545 \fB\fBldap_next_reference\fR(3LDAP)\fR
547 .sp .6
548 .RS 4n
549 Step through a list of continuation references from a search result.
553 .ne 2
555 \fB\fBldap_count_references\fR(3LDAP)\fR
557 .sp .6
558 .RS 4n
559 Count the number of messages in a search result.
563 .ne 2
565 \fB\fBldap_first_message\fR(3LDAP)\fR
567 .sp .6
568 .RS 4n
569 Step through a list of messages in a search result.
573 .ne 2
575 \fB\fBldap_count_messages\fR(3LDAP)\fR
577 .sp .6
578 .RS 4n
579 Count the messages in a list of messages in a search result.
583 .ne 2
585 \fB\fBldap_next_message\fR(3LDAP)\fR
587 .sp .6
588 .RS 4n
589 Step through a list of messages in a search result.
593 .ne 2
595 \fB\fBldap_msgtype\fR(3LDAP)\fR
597 .sp .6
598 .RS 4n
599 Return the type of LDAP message.
603 .ne 2
605 \fB\fBldap_first_disptmpl\fR(3LDAP)\fR
607 .sp .6
608 .RS 4n
609 Get first display template in a list.
613 .ne 2
615 \fB\fBldap_next_disptmpl\fR(3LDAP)\fR
617 .sp .6
618 .RS 4n
619 Get next display template in a list.
623 .ne 2
625 \fB\fBldap_oc2template\fR(3LDAP)\fR
627 .sp .6
628 .RS 4n
629 Return template appropriate for the objectclass.
633 .ne 2
635 \fB\fBldap_name2template\fR(3LDAP)\fR
637 .sp .6
638 .RS 4n
639 Return named template
643 .ne 2
645 \fB\fBldap_tmplattrs\fR(3LDAP)\fR
647 .sp .6
648 .RS 4n
649 Return attributes needed by the template.
653 .ne 2
655 \fB\fBldap_first_tmplrow\fR(3LDAP)\fR
657 .sp .6
658 .RS 4n
659 Return first row of displayable items in a template.
663 .ne 2
665 \fB\fBldap_next_tmplrow\fR(3LDAP)\fR
667 .sp .6
668 .RS 4n
669 Return next row of displayable items in a template.
673 .ne 2
675 \fB\fBldap_first_tmplcol\fR(3LDAP)\fR
677 .sp .6
678 .RS 4n
679 Return first column of displayable items in a template.
683 .ne 2
685 \fB\fBldap_next_tmplcol\fR(3LDAP)\fR
687 .sp .6
688 .RS 4n
689 Return next column of displayable items in a template.
693 .ne 2
695 \fB\fBldap_entry2text\fR(3LDAP)\fR
697 .sp .6
698 .RS 4n
699 Display an entry as text by using a display template.
703 .ne 2
705 \fB\fBldap_entry2text_search\fR(3LDAP)\fR
707 .sp .6
708 .RS 4n
709 Search for and display an entry as text by using a display template.
713 .ne 2
715 \fB\fBldap_vals2text\fR(3LDAP)\fR
717 .sp .6
718 .RS 4n
719 Display values as text.
723 .ne 2
725 \fB\fBldap_entry2html\fR(3LDAP)\fR
727 .sp .6
728 .RS 4n
729 Display an entry as HTML (HyperText Markup Language) by using a display
730 template.
734 .ne 2
736 \fB\fBldap_entry2html_search\fR(3LDAP)\fR
738 .sp .6
739 .RS 4n
740 Search for and display an entry as HTML by using a display template.
744 .ne 2
746 \fB\fBldap_vals2html\fR(3LDAP)\fR
748 .sp .6
749 .RS 4n
750 Display values as HTML.
754 .ne 2
756 \fB\fBldap_perror\fR(3LDAP)\fR
758 .sp .6
759 .RS 4n
760 Deprecated. Use \fBldap_parse_result\fR(3LDAP).
764 .ne 2
766 \fB\fBldap_result2error\fR(3LDAP)\fR
768 .sp .6
769 .RS 4n
770 Deprecated. Use \fBldap_parse_result\fR(3LDAP).
774 .ne 2
776 \fB\fBldap_err2string\fR(3LDAP)\fR
778 .sp .6
779 .RS 4n
780 Convert LDAP error indication to a string.
784 .ne 2
786 \fB\fBldap_first_attribute\fR(3LDAP)\fR
788 .sp .6
789 .RS 4n
790 Return first attribute name in an entry.
794 .ne 2
796 \fB\fBldap_next_attribute\fR(3LDAP)\fR
798 .sp .6
799 .RS 4n
800 Return next attribute name in an entry.
804 .ne 2
806 \fB\fBldap_first_entry\fR(3LDAP)\fR
808 .sp .6
809 .RS 4n
810 Return first entry in a chain of search results.
814 .ne 2
816 \fB\fBldap_next_entry\fR(3LDAP)\fR
818 .sp .6
819 .RS 4n
820 Return next entry in a chain of search results.
824 .ne 2
826 \fB\fBldap_count_entries\fR(3LDAP)\fR
828 .sp .6
829 .RS 4n
830 Return number of entries in a search result.
834 .ne 2
836 \fB\fBldap_friendly_name\fR(3LDAP)\fR
838 .sp .6
839 .RS 4n
840 Map from unfriendly to friendly names.
844 .ne 2
846 \fB\fBldap_free_friendlymap\fR(3LDAP)\fR
848 .sp .6
849 .RS 4n
850 Free resources used by \fBldap_friendly\fR(3LDAP).
854 .ne 2
856 \fB\fBldap_get_dn\fR(3LDAP)\fR
858 .sp .6
859 .RS 4n
860 Extract the DN from an entry.
864 .ne 2
866 \fB\fBldap_explode_dn\fR(3LDAP)\fR
868 .sp .6
869 .RS 4n
870 Convert a DN into its component parts.
874 .ne 2
876 \fB\fBldap_explode_dns\fR(3LDAP)\fR
878 .sp .6
879 .RS 4n
880 Convert a DNS-style DN into its component parts (experimental).
884 .ne 2
886 \fB\fBldap_is_dns_dn\fR(3LDAP)\fR
888 .sp .6
889 .RS 4n
890 Check to see if a DN is a DNS-style DN (experimental).
894 .ne 2
896 \fB\fBldap_dns_to_dn\fR(3LDAP)\fR
898 .sp .6
899 .RS 4n
900 Convert a DNS domain name into an X.500 distinguished name.
904 .ne 2
906 \fB\fBldap_dn2ufn\fR(3LDAP)\fR
908 .sp .6
909 .RS 4n
910 Convert a DN into user friendly form.
914 .ne 2
916 \fB\fBldap_get_values\fR(3LDAP)\fR
918 .sp .6
919 .RS 4n
920 Return an attribute's values.
924 .ne 2
926 \fB\fBldap_get_values_len\fR(3LDAP)\fR
928 .sp .6
929 .RS 4n
930 Return an attribute's values with lengths.
934 .ne 2
936 \fB\fBldap_value_free\fR(3LDAP)\fR
938 .sp .6
939 .RS 4n
940 Free memory allocated by \fBldap_get_values\fR(3LDAP).
944 .ne 2
946 \fB\fBldap_value_free_len\fR(3LDAP)\fR
948 .sp .6
949 .RS 4n
950 Free memory allocated by \fBldap_get_values_len\fR(3LDAP).
954 .ne 2
956 \fB\fBldap_count_values\fR(3LDAP)\fR
958 .sp .6
959 .RS 4n
960 Return number of values.
964 .ne 2
966 \fB\fBldap_count_values_len\fR(3LDAP)\fR
968 .sp .6
969 .RS 4n
970 Return number of values.
974 .ne 2
976 \fB\fBldap_init_getfilter\fR(3LDAP)\fR
978 .sp .6
979 .RS 4n
980 Initialize getfilter functions from a file.
984 .ne 2
986 \fB\fBldap_init_getfilter_buf\fR(3LDAP)\fR
988 .sp .6
989 .RS 4n
990 Initialize getfilter functions from a buffer.
994 .ne 2
996 \fB\fBldap_getfilter_free\fR(3LDAP)\fR
998 .sp .6
999 .RS 4n
1000 Free resources allocated by \fBldap_init_getfilter\fR(3LDAP).
1004 .ne 2
1006 \fB\fBldap_getfirstfilter\fR(3LDAP)\fR
1008 .sp .6
1009 .RS 4n
1010 Return first search filter.
1014 .ne 2
1016 \fB\fBldap_getnextfilter\fR(3LDAP)\fR
1018 .sp .6
1019 .RS 4n
1020 Return next search filter.
1024 .ne 2
1026 \fB\fBldap_build_filter\fR(3LDAP)\fR
1028 .sp .6
1029 .RS 4n
1030 Construct an LDAP search filter from a pattern.
1034 .ne 2
1036 \fB\fBldap_setfilteraffixes\fR(3LDAP)\fR
1038 .sp .6
1039 .RS 4n
1040 Set prefix and suffix for search filters.
1044 .ne 2
1046 \fB\fBldap_modify\fR(3LDAP)\fR
1048 .sp .6
1049 .RS 4n
1050 Asynchronously modify an entry.
1054 .ne 2
1056 \fB\fBldap_modify_s\fR(3LDAP)\fR
1058 .sp .6
1059 .RS 4n
1060 Synchronously modify an entry.
1064 .ne 2
1066 \fB\fBldap_modify_ext\fR(3LDAP)\fR
1068 .sp .6
1069 .RS 4n
1070 Asynchronously modify an entry, return value, and place message.
1074 .ne 2
1076 \fB\fBldap_modify_ext_s\fR(3LDAP)\fR
1078 .sp .6
1079 .RS 4n
1080 Synchronously modify an entry, return value, and place message.
1084 .ne 2
1086 \fB\fBldap_mods_free\fR(3LDAP)\fR
1088 .sp .6
1089 .RS 4n
1090 Free array of pointers to mod structures used by \fBldap_modify\fR(3LDAP).
1094 .ne 2
1096 \fB\fBldap_modrdn2\fR(3LDAP)\fR
1098 .sp .6
1099 .RS 4n
1100 Deprecated. Use \fBldap_rename\fR(3LDAP) instead.
1104 .ne 2
1106 \fB\fBldap_modrdn2_s\fR(3LDAP)\fR
1108 .sp .6
1109 .RS 4n
1110 Deprecated. Use \fBldap_rename_s\fR(3LDAP) instead.
1114 .ne 2
1116 \fB\fBldap_modrdn\fR(3LDAP)\fR
1118 .sp .6
1119 .RS 4n
1120 Deprecated. Use \fBldap_rename\fR(3LDAP) instead.
1124 .ne 2
1126 \fB\fBldap_modrdn_s\fR(3LDAP)\fR
1128 .sp .6
1129 .RS 4n
1130 Depreciated. Use \fBldap_rename_s\fR(3LDAP) instead.
1134 .ne 2
1136 \fB\fBldap_rename\fR(3LDAP)\fR
1138 .sp .6
1139 .RS 4n
1140 Asynchronously modify the name of an LDAP entry.
1144 .ne 2
1146 \fB\fBldap_rename_s\fR(3LDAP)\fR
1148 .sp .6
1149 .RS 4n
1150 Synchronously modify the name of an LDAP entry.
1154 .ne 2
1156 \fB\fBldap_msgfree\fR(3LDAP)\fR
1158 .sp .6
1159 .RS 4n
1160 Free result messages.
1164 .ne 2
1166 \fB\fBldap_parse_result\fR(3LDAP)\fR
1168 .sp .6
1169 .RS 4n
1170 Search for a message to parse.
1174 .ne 2
1176 \fB\fBldap_parse_extended_result\fR(3LDAP)\fR
1178 .sp .6
1179 .RS 4n
1180 Search for a message to parse.
1184 .ne 2
1186 \fB\fBldap_parse_sasl_bind_result\fR(3LDAP)\fR
1188 .sp .6
1189 .RS 4n
1190 Search for a message to parse.
1194 .ne 2
1196 \fB\fBldap_search\fR(3LDAP)\fR
1198 .sp .6
1199 .RS 4n
1200 Asynchronously search the directory.
1204 .ne 2
1206 \fB\fBldap_search_s\fR(3LDAP)\fR
1208 .sp .6
1209 .RS 4n
1210 Synchronously search the directory.
1214 .ne 2
1216 \fB\fBldap_search_ext\fR(3LDAP)\fR
1218 .sp .6
1219 .RS 4n
1220 Asynchronously search the directory with support for LDAPv3 controls.
1224 .ne 2
1226 \fB\fBldap_search_ext_s\fR(3LDAP)\fR
1228 .sp .6
1229 .RS 4n
1230 Synchronously search the directory with support for LDAPv3 controls.
1234 .ne 2
1236 \fB\fBldap_search_st\fR(3LDAP)\fR
1238 .sp .6
1239 .RS 4n
1240 Synchronously search the directory with support for a local timeout value.
1244 .ne 2
1246 \fB\fBldap_ufn_search_s\fR(3LDAP)\fR
1248 .sp .6
1249 .RS 4n
1250 User friendly search the directory.
1254 .ne 2
1256 \fB\fBldap_ufn_search_c\fR(3LDAP)\fR
1258 .sp .6
1259 .RS 4n
1260 User friendly search the directory with cancel.
1264 .ne 2
1266 \fB\fBldap_ufn_search_ct\fR(3LDAP)\fR
1268 .sp .6
1269 .RS 4n
1270 User friendly search the directory with cancel and timeout.
1274 .ne 2
1276 \fB\fBldap_ufn_setfilter\fR(3LDAP)\fR
1278 .sp .6
1279 .RS 4n
1280 Set filter file used by \fBldap_ufn\fR(3LDAP) functions.
1284 .ne 2
1286 \fB\fBldap_ufn_setprefix\fR(3LDAP)\fR
1288 .sp .6
1289 .RS 4n
1290 Set prefix used by \fBldap_ufn\fR(3LDAP) functions.
1294 .ne 2
1296 \fB\fBldap_ufn_timeout\fR(3LDAP)\fR
1298 .sp .6
1299 .RS 4n
1300 Set timeout used by \fBldap_ufn\fR(3LDAP) functions.
1304 .ne 2
1306 \fB\fBldap_is_ldap_url\fR(3LDAP)\fR
1308 .sp .6
1309 .RS 4n
1310 Check a URL string to see if it is an LDAP URL.
1314 .ne 2
1316 \fB\fBldap_url_parse\fR(3LDAP)\fR
1318 .sp .6
1319 .RS 4n
1320 Break up an LDAP URL string into its components.
1324 .ne 2
1326 \fB\fBldap_free_urldesc\fR(3LDAP)\fR
1328 .sp .6
1329 .RS 4n
1330 Free an LDAP URL structure.
1334 .ne 2
1336 \fB\fBldap_url_search\fR(3LDAP)\fR
1338 .sp .6
1339 .RS 4n
1340 Asynchronously search by using an LDAP URL.
1344 .ne 2
1346 \fB\fBldap_url_search_s\fR(3LDAP)\fR
1348 .sp .6
1349 .RS 4n
1350 Synchronously search by using an LDAP URL.
1354 .ne 2
1356 \fB\fBldap_url_search_st\fR(3LDAP)\fR
1358 .sp .6
1359 .RS 4n
1360 Asynchronously search by using an LDAP URL, with support for a local timeout
1361 value.
1365 .ne 2
1367 \fB\fBldap_dns_to_url\fR(3LDAP)\fR
1369 .sp .6
1370 .RS 4n
1371 Locate the LDAP URL associated with a DNS domain name.
1375 .ne 2
1377 \fB\fBldap_dn_to_url\fR(3LDAP)\fR
1379 .sp .6
1380 .RS 4n
1381 Locate the LDAP URL associated with a distinguished name.
1385 .ne 2
1387 \fB\fBldap_init_searchprefs\fR(3LDAP)\fR
1389 .sp .6
1390 .RS 4n
1391 Initialize searchprefs functions from a file.
1395 .ne 2
1397 \fB\fBldap_init_searchprefs_buf\fR(3LDAP)\fR
1399 .sp .6
1400 .RS 4n
1401 Initialize searchprefs functions from a buffer.
1405 .ne 2
1407 \fB\fBldap_free_searchprefs\fR(3LDAP)\fR
1409 .sp .6
1410 .RS 4n
1411 Free memory allocated by searchprefs functions.
1415 .ne 2
1417 \fB\fBldap_first_searchobj\fR(3LDAP)\fR
1419 .sp .6
1420 .RS 4n
1421 Return first searchpref object.
1425 .ne 2
1427 \fB\fBldap_next_searchobj\fR(3LDAP)\fR
1429 .sp .6
1430 .RS 4n
1431 Return next searchpref object.
1435 .ne 2
1437 \fB\fBldap_sort_entries\fR(3LDAP)\fR
1439 .sp .6
1440 .RS 4n
1441 Sort a list of search results.
1445 .ne 2
1447 \fB\fBldap_sort_values\fR(3LDAP)\fR
1449 .sp .6
1450 .RS 4n
1451 Sort a list of attribute values.
1455 .ne 2
1457 \fB\fBldap_sort_strcasecmp\fR(3LDAP)\fR
1459 .sp .6
1460 .RS 4n
1461 Case insensitive string comparison.
1465 .ne 2
1467 \fB\fBldap_set_string_translators\fR(3LDAP)\fR
1469 .sp .6
1470 .RS 4n
1471 Set character set translation functions used by LDAP library.
1475 .ne 2
1477 \fB\fBldap_translate_from_t61\fR(3LDAP)\fR
1479 .sp .6
1480 .RS 4n
1481 Translate from the T.61 character set to another character set.
1485 .ne 2
1487 \fB\fBldap_translate_to_t61\fR(3LDAP)\fR
1489 .sp .6
1490 .RS 4n
1491 Translate to the T.61 character set from another character set.
1495 .ne 2
1497 \fB\fBldap_enable_translation\fR(3LDAP)\fR
1499 .sp .6
1500 .RS 4n
1501 Enable or disable character translation for an LDAP entry result.
1505 .ne 2
1507 \fB\fBldap_version\fR(3LDAP)\fR
1509 .sp .6
1510 .RS 4n
1511 Get version information about the LDAP SDK for C.
1515 .ne 2
1517 \fB\fBldap_get_lang_values\fR(3LDAP)\fR
1519 .sp .6
1520 .RS 4n
1521 Return an attribute's value that matches a specified language subtype.
1525 .ne 2
1527 \fB\fBldap_get_lang_values_len\fR(3LDAP)\fR
1529 .sp .6
1530 .RS 4n
1531 Return an attribute's value that matches a specified language subtype along
1532 with lengths.
1536 .ne 2
1538 \fB\fBldap_get_entry_controls\fR(3LDAP)\fR
1540 .sp .6
1541 .RS 4n
1542 Get the LDAP controls included with a directory entry in a set of search
1543 results.
1547 .ne 2
1549 \fB\fBldap_get_option\fR(3LDAP)\fR
1551 .sp .6
1552 .RS 4n
1553 Get session preferences in an LDAP structure.
1557 .ne 2
1559 \fB\fBldap_set_option\fR(3LDAP)\fR
1561 .sp .6
1562 .RS 4n
1563 Set session preferences in an LDAP structure.
1567 .ne 2
1569 \fB\fBldap_memfree\fR(3LDAP)\fR
1571 .sp .6
1572 .RS 4n
1573 Free memory allocated by LDAP API functions.
1576 .SH ATTRIBUTES
1578 See \fBattributes\fR(5) for a description of the following attributes:
1583 box;
1584 c | c
1585 l | l .
1586 ATTRIBUTE TYPE  ATTRIBUTE VALUE
1588 Stability Level Evolving
1591 .SH SEE ALSO
1593 \fBattributes\fR(5)