such as DNS DNs and charset routines.
.fi
.SH DESCRIPTION
.LP
-The Lightweight Directory Access Protocol provides TCP/IP access to
-the X.500 Directory or to a stand-alone LDAP server.
+The Lightweight Directory Access Protocol provides access to
+X.500 directory services. The services may be stand\-alone
+part of a distributed directory service. This API supports
+LDAP over TCP, LDAP over SSL, and LDAP over IPC (UNIX domain
+sockets).
+.LP
The OpenLDAP LDAP package includes a stand-alone server in
.BR slapd (8),
various LDAP clients, and an LDAP client library used to provide
various routines to parse the results returned from these routines.
These routines are found in the \-lldap library.
.LP
-The basic interaction is as follows. A connection is made to an LDAP
-server by calling
-.BR ldap_open (3).
-An LDAP bind operation is performed by calling
-one of
-.BR ldap_bind (3)
+The basic interaction is as follows. A session handle associated
+with created using
+.BR ldap_init (3).
+The underlying session is established upon first use which is
+commonly an LDAP bind operation. The LDAP bind operation is
+performed by calling one of
+.BR ldap_sasl_bind (3)
and friends. Next, other operations are performed
by calling one of the synchronous or asynchronous routines (e.g.,
-.BR ldap_search_s (3)
+.BR ldap_search_ext_s (3)
or
-.BR ldap_search (3)
+.BR ldap_search_ext (3)
followed by
.BR ldap_result (3)).
Results returned from these routines are interpreted by calling the
-LDAP parsing routines. The LDAP association is terminated by calling
-.BR ldap_unbind (3).
+LDAP parsing routines such as
+.BR ldap_parse_result (3).
+The LDAP association and underlying connection is terminated by calling
+.BR ldap_unbind_ext (3).
Errors can be interpreted by calling
-.BR ldap_perror (3).
-The
-.BR ldap_set_rebind_proc (3)
-routine can be used to set a routine to be called back when an LDAP bind
-operation needs to occur when handling a client referral.
+.BR ldap_err2string (3).
.SH SEARCH FILTERS
Search filters to be passed to the ldap search routines can be
constructed by hand, or by calling the
.BR ldap_next_attribute (3)
to step through an entry's attributes, and
.BR ldap_get_values (3)
-to retrieve a given attribute's value, and then calling
-.BR printf (3)
-or whatever to display the values.
+to retrieve a given attribute's value. Attribute values
+may or may not be displayable.
.LP
Alternatively, the entry can be output automatically by calling
the
.BR ldap_ufn (3)
routines implement a user friendly naming
scheme via LDAP. This scheme allows you to look up entries
-using fuzzy, untyped names like "mark smith, umich, us".
+using fuzzy, untyped names like "john smith, example corp, ca, us".
.SH CACHING
The
.BR ldap_cache (3)
Encoding Rules routines. These routines are used by the LDAP library
routines to encode and decode LDAP protocol elements using the
(slightly simplified) Basic Encoding Rules defined by LDAP. They are
-not normally used directly by an LDAP application program. The
+not normally used directly by an LDAP application program excepting
+in the handling of controls and extended operations. The
routines provide a printf and scanf-like interface, as well as
-lower-level access. These routines are found in the liblber.a
+lower-level access. These routines are found in the -llber
library.
.SH INDEX
.TP 20
.SM ldap_explode_rdn(3)
convert a RDN into its component parts
.TP
-.SM ldap_explode_dns(3)
-convert a DNS-style DN into its component parts (experimental)
-.TP
-.SM ldap_is_dns_dn(3)
-check to see if a DN is a DNS-style DN (experimental)
-.TP
.SM ldap_dn2ufn(3)
convert a DN into user friendly form
.TP
.SM ldap_sort_strcasecmp(3)
case insensitive string comparison
.TP
-.SM ldap_set_string_translators(3)
-set character set translation routines used by LDAP library
-.TP
-.SM ldap_t61_to_8859(3)
-translate from ISO-8859 characters to the T.61 characters
-.TP
-.SM ldap_8859_to_t61(3)
-translate from T.61 characters to the ISO-8859 characters
-.TP
-.SM ldap_translate_from_t61(3)
-translate from the T.61 character set to another character set
-.TP
-.SM ldap_translate_to_t61(3)
-translate to the T.61 character set from another character set
-.TP
-.SM ldap_enable_translation(3)
-enable or disable character translation for an LDAP entry result
-.TP
.SM cldap_open(3)
open a connectionless LDAP (CLDAP) session
.TP
+++ /dev/null
-.TH LDAP_CHARSET 3 "22 September 1998" "OpenLDAP LDVERSION"
-.\" $OpenLDAP$
-.\" Copyright 1998-2000 The OpenLDAP Foundation All Rights Reserved.
-.\" Copying restrictions apply. See COPYRIGHT/LICENSE.
-.SH NAME
-ldap_set_string_translators,
-ldap_t61_to_8859,
-ldap_8859_to_t61,
-ldap_translate_from_t61,
-ldap_translate_to_t61,
-ldap_enable_translation \- LDAP character set translation routines
-.SH SYNOPSIS
-.nf
-.ft B
-#include <ldap.h>
-.ft
-.LP
-.ft B
-void ldap_set_string_translators( ld, encode_proc, decode_proc )
-.ft
-LDAP *ld;
-BERTranslateProc encode_proc;
-BERTranslateProc decode_proc;
-.LP
-.ft B
-typedef int (*BERTranslateProc)( char **bufp, unsigned long *buflenp,
- int free_input );
-.ft
-.LP
-.ft B
-int ldap_t61_to_8859( bufp, buflenp, free_input )
-.ft
-char **bufp;
-unsigned long *buflenp;
-int free_input;
-.LP
-.ft B
-int ldap_8859_to_t61( bufp, buflenp, free_input )
-.ft
-char **bufp;
-unsigned long *buflenp;
-int free_input;
-.LP
-.ft B
-int ldap_translate_from_t61( ld, bufp, lenp, free_input )
-.ft
-LDAP *ld;
-char **bufp;
-unsigned long *lenp;
-int free_input;
-.LP
-.ft B
-int ldap_translate_to_t61( ld, bufp, lenp, free_input )
-.ft
-LDAP *ld;
-char **bufp;
-unsigned long *lenp;
-int free_input;
-.LP
-.ft B
-void ldap_enable_translation( ld, entry, enable )
-.ft
-LDAP *ld;
-LDAPMessage *entry;
-int enable;
-.fi
-.SH DESCRIPTION
-.LP
-These routines are used to used to enable translation of character strings
-used in the LDAP library to and from the T.61 character set used in the
-LDAP protocol. These functions are only available if the LDAP and LBER
-libraries are compiled with STR_TRANSLATION defined.
-It is also possible to turn on character translation by default so that
-all LDAP library callers will experience translation; see the LDAP
-Make-common source file for details.
-.LP
-.B ldap_set_string_translators()
-sets the translation routines that will
-be used by the LDAP library. They are not actually used until the
-\fIld_lberoptions\fP field of the LDAP structure is set to include the
-LBER_TRANSLATE_STRINGS option.
-.LP
-.B ldap_t61_to_8859()
-and
-.B ldap_8859_to_t61()
-are translation routines for
-converting between T.61 characters and ISO-8859 characters. The specific
-8859 character set used is determined at compile time.
-.LP
-.B ldap_translate_from_t61()
-is used to translate a string of characters from the T.61 character set to a
-different character set. The actual translation is done using the
-\fIdecode_proc\fP that was passed to a previous call to
-.B ldap_set_string_translators().
-On entry, \fI*bufp\fP should point to the start of the T.61 characters
-to be translated and \fI*lenp\fP should contain the number of bytes to
-translate. If \fIfree_input\fP is non-zero, the input buffer will be
-freed if translation is a success. If the translation is a success,
-LDAP_SUCCESS will be returned, \fI*bufp\fP will point to a newly
-dynamically allocated buffer that contains the translated characters, and
-\fI*lenp\fP will contain the length of the result. If translation
-fails, an LDAP error code will be returned.
-
-.LP
-.B ldap_translate_to_t61()
-is used to translate a string of characters to the T.61 character set from a
-different character set. The actual translation is done using the
-\fIencode_proc\fP that was passed to a previous call to
-.B ldap_set_string_translators().
-This function is called just like
-.B ldap_translate_from_t61().
-.LP
-.B ldap_enable_translation()
-is used to turn on or off string translation for the LDAP entry \fIentry\fP
-(typically obtained by calling
-.B ldap_first_entry()
-or
-.B ldap_next_entry()
-after a successful LDAP search operation). If \fIenable\fP is zero,
-translation is disabled; if non-zero, translation is enabled. This routine
-is useful if you need to ensure that a particular attribute is not
-translated when it is extracted using
-.B ldap_get_values()
-or
-.B ldap_get_values_len().
-For example, you would not want to translate a binary attributes such as
-jpegPhoto.
-.SH SEE ALSO
-.BR ldap (3)
-.SH ACKNOWLEDGEMENTS
-.B OpenLDAP
-is developed and maintained by The OpenLDAP Project (http://www.openldap.org/).
-.B OpenLDAP
-is derived from University of Michigan LDAP 3.3 Release.
+++ /dev/null
-ldap_set_string_translators.3
-ldap_enable_translation.3
-ldap_translate_from_t61.3
-ldap_translate_to_t61.3
-ldap_t61_to_8859.3
-ldap_8859_to_t61.3
.\" Copyright 1998-2000 The OpenLDAP Foundation All Rights Reserved.
.\" Copying restrictions apply. See COPYRIGHT/LICENSE.
.SH NAME
-ldap_get_dn, ldap_explode_dn, ldap_explode_rdn, ldap_dn2ufn, ldap_is_dns_dn, ldap_explode_dns \- LDAP DN handling routines
+ldap_get_dn, ldap_explode_dn, ldap_explode_rdn, ldap_dn2ufn \- LDAP DN handling routines
.SH SYNOPSIS
.nf
.ft B
char *ldap_dn2ufn(dn)
.ft
char *dn;
-.LP
-.ft B
-int ldap_is_dns_dn(dn)
-.ft
-char *dn;
-.LP
-.ft B
-char **ldap_explode_dns(dn)
-.ft
-char *dn;
.SH DESCRIPTION
These routines allow LDAP entry names (Distinguished Names, or DNs)
to be obtained, parsed, converted to a user-friendly form, and tested.
is obtained dynamically and the user is responsible for freeing it
via a call to
.BR ldap_memfree (3).
-.LP
-.B ldap_is_dns_dn()
-returns non-zero if the dn string is an experimental
-DNS-style DN (generally in the form of an RFC 822 e-mail address). It
-returns zero if the dn appears to be an RFC 1779 format DN.
-.LP
-.B ldap_explode_dns()
-takes a DNS-style DN and breaks it up into its
-component parts.
-.B ldap_explode_dns()
-returns a NULL-terminated array.
-For example, the DN "mcs.umich.edu" will return { "mcs", "umich", "edu",
-NULL }. The result can be freed by calling
-.BR ldap_value_free (3).
.SH ERRORS
If an error occurs in
.BR ldap_get_dn() ,
for a description of possible error codes.
.BR ldap_explode_dn() ,
.BR ldap_explode_rdn() ,
-.B ldap_explode_dns()
and
.B ldap_dn2ufn()
will return NULL with
ldap_explode_dn.3
ldap_explode_rdn.3
-ldap_explode_dns.3
ldap_dn2ufn.3
-ldap_is_dns_dn.3