diff man/lispref/ldap.texi @ 412:697ef44129c6 r21-2-14

Import from CVS: tag r21-2-14
author cvs
date Mon, 13 Aug 2007 11:20:41 +0200
parents b8cc9ab3f761
children
line wrap: on
line diff
--- a/man/lispref/ldap.texi	Mon Aug 13 11:19:22 2007 +0200
+++ b/man/lispref/ldap.texi	Mon Aug 13 11:20:41 2007 +0200
@@ -3,7 +3,7 @@
 @c Copyright (C) 1998 Free Software Foundation, Inc. 
 @c See the file lispref.texi for copying conditions.
 @setfilename ../../info/ldap.info
-@node LDAP Support, PostgreSQL Support, ToolTalk Support, top
+@node LDAP Support, Internationalization, ToolTalk Support, top
 @chapter LDAP Support
 @cindex LDAP
 
@@ -25,7 +25,7 @@
 successfully built and tested with
 
 @itemize @bullet
-@item OpenLDAP 1.2 (@url{http://www.openldap.org/})
+@item OpenLDAP 1.0.3 (@url{http://www.openldap.org/})
 @item University of Michigan's LDAP 3.3 (@url{http://www.umich.edu/~dirsvcs/ldap/})
 @item LDAP SDK 1.0 from Netscape Corp. (@url{http://developer.netscape.com/})
 @end itemize
@@ -33,7 +33,7 @@
 Other libraries conforming to RFC 1823 will probably work also but may
 require some minor tweaking at C level.
 
-The standard XEmacs configure script auto-detects an installed LDAP
+The standard XEmacs configure script autodetects an installed LDAP
 library provided the library itself and the corresponding header files
 can be found in the library and include paths.  A successful detection
 will be signalled in the final output of the configure script.
@@ -49,18 +49,13 @@
 higher-level layer which provides more convenient primitives to
 effectively use LDAP.
 
-The low-level API should be used directly for very specific purposes
-(such as multiple operations on a connection) only.  The higher-level
-functions provide a more convenient way to access LDAP directories
-hiding the subtleties of handling the connection, translating arguments
-and ensuring compliance with LDAP internationalization rules and formats
-(currently partly implemented only).
+As of XEmacs 21.0, only interfaces to basic LDAP search functions are
+provided, broader support is planned in future versions.
 
 @menu
 * LDAP Variables::              Lisp variables related to LDAP
 * The High-Level LDAP API::     High-level LDAP lisp functions 
 * The Low-Level LDAP API::      Low-level LDAP lisp primitives
-* LDAP Internationalization::   I18n variables and functions
 @end menu
 
 
@@ -82,7 +77,7 @@
 @defvar ldap-default-base
 Default base for LDAP searches.
 This is a string using the syntax of RFC 1779.
-For instance, "o=ACME, c=US" limits the search to the
+For instance, "o¬ME, cÿ" limits the search to the
 Acme organization in the United States.
 @end defvar
 
@@ -97,7 +92,7 @@
 @table @code
 @item binddn
 The distinguished name of the user to bind as.  This may look like
-@samp{cn=Babs Jensen,o=ACME,c=US}, see RFC 1779 for details.
+@samp{cÿ, o¬me, cnÿnny Bugs}, see RFC 1779 for details.
 @item passwd
 The password to use for authentication.
 @item auth
@@ -132,99 +127,41 @@
 @end table
 @end defvar
 
-@defvar ldap-verbose
-If non-@code{nil}, LDAP operations will echo progress messages. Defaults to @code{nil}.
-@end defvar
 
 
 @node The High-Level LDAP API, The Low-Level LDAP API, LDAP Variables, XEmacs LDAP API
 @comment  node-name,  next,  previous,  up
 @subsection The High-Level LDAP API
 
-The following functions provide the most convenient interface to perform
-LDAP operations.  All of them open a connection to a host, perform an
-operation (add/search/modify/delete) on one or several entries and
-cleanly close the connection thus insulating the user from all the
-details of the low-level interface such as LDAP Lisp objects @pxref{The
-Low-Level LDAP API}.  
+As of this writing the high-level Lisp LDAP API only provides for LDAP
+searches.  Further support is planned in the future.
 
-Note that @code{ldap-search} which used to be the name of the high-level
-search function in XEmacs 21.1 is now obsolete.  For consistency  in the 
-naming as well as backward compatibility, that function now acts as a
-wrapper that calls either @code{ldap-search-basic} (low-level search
-function) or @code{ldap-search-entries} (high-level search function)
-according to the actual parameters.  A direct call to one of these two
-functions is preferred since it is faster and unambiguous.
+The @code{ldap-search} function provides the most convenient interface
+to perform LDAP searches.  It opens a connection to a host, performs the
+query and cleanly closes the connection thus insulating the user from
+all the details of the low-level interface such as LDAP Lisp objects
+@pxref{The Low-Level LDAP API}
 
-@defun ldap-search-entries filter &optional host attributes attrsonly withdn
+@defun ldap-search filter &optional host attributes attrsonly
 Perform an LDAP search.
 @var{filter} is the search filter @pxref{Syntax of Search Filters}
-@var{host} is the LDAP host on which to perform the search.
+@var{host} is the LDAP host on which to perform the search
 @var{attributes} is the specific attributes to retrieve, @code{nil} means 
-retrieve all.
+retrieve all
 @var{attrsonly} if non-@code{nil} retrieves the attributes only without 
 their associated values.
-If @var{withdn} is non-@code{nil} each entry in the result will be prepended with
-its distinguished name DN.
 Additional search parameters can be specified through 
 @code{ldap-host-parameters-alist}.
-The function returns a list of matching entries.  Each entry is itself
-an alist of attribute/value pairs optionally preceded by the DN of the
-entry according to the value of @var{withdn}.
 @end defun
 
-@defun ldap-add-entries entries &optional host binddn passwd
-Add entries to an LDAP directory.  @var{entries} is a list of entry
-specifications of the form @code{(DN (ATTR . VALUE) (ATTR . VALUE) ...)} 
-where @var{dn} the distinguished name of an entry to add, the following
-are cons cells containing attribute/value string pairs.  @var{host} is
-the LDAP host, defaulting to `ldap-default-host' @var{binddn} is the DN
-to bind as to the server @var{passwd} is the corresponding password.
-@end defun
-
-@defun ldap-modify-entries entry-mods &optional host binddn passwd
-Modify entries of an LDAP directory.
-@var{entry_mods} is a list of entry modifications of the form 
-@code{(DN MOD-SPEC1 MOD-SPEC2 ...)} where @var{dn} is the distinguished name of 
-the entry to modify, the following are modification specifications. 
-A modification specification is itself a list of the form 
-@code{(MOD-OP ATTR VALUE1 VALUE2 ...)} @var{mod-op} and @var{attr} are mandatory, 
-@var{values} are optional depending on @var{mod-op}.
-@var{mod-op} is the type of modification, one of the symbols @code{add}, @code{delete}
-or @code{replace}. @var{attr} is the LDAP attribute type to modify.
-@var{host} is the LDAP host, defaulting to @code{ldap-default-host}
-@var{binddn} is the DN to bind as to the server
-@var{passwd} is the corresponding password"
-@end defun
-
-@defun ldap-delete-entries dn &optional host binddn passwd
-Delete an entry from an LDAP directory.
-@var{dn} is the distinguished name of an entry to delete or 
-a list of those.
-@var{host} is the LDAP host, defaulting to @code{ldap-default-host}
-@var{binddn} is the DN to bind as to the server
-@var{passwd} is the corresponding password.
-@end defun
-
-
-@node The Low-Level LDAP API, LDAP Internationalization, The High-Level LDAP API, XEmacs LDAP API
+@node The Low-Level LDAP API,  , The High-Level LDAP API, XEmacs LDAP API
 @comment  node-name,  next,  previous,  up
 @subsection The Low-Level LDAP API
 
-The low-level API should be used directly for very specific purposes
-(such as multiple operations on a connection) only.  The higher-level
-functions provide a more convenient way to access LDAP directories
-hiding the subtleties of handling the connection, translating arguments
-and ensuring compliance with LDAP internationalization rules and formats
-(currently partly implemented only). See @pxref{The High-Level LDAP API}
-
-Note that the former functions @code{ldap-*-internal} functions have been
-renamed in XEmacs 21.2
-
 @menu
 * The LDAP Lisp Object::        
 * Opening and Closing a LDAP Connection::  
-* Low-level Operations on a LDAP Server::  
+* Searching on a LDAP Server (Low-level)::  
 @end menu
 
 @node The LDAP Lisp Object, Opening and Closing a LDAP Connection, The Low-Level LDAP API, The Low-Level LDAP API
@@ -247,7 +184,7 @@
 @end defun
 
 
-@node Opening and Closing a LDAP Connection, Low-level Operations on a LDAP Server, The LDAP Lisp Object, The Low-Level LDAP API
+@node Opening and Closing a LDAP Connection, Searching on a LDAP Server (Low-level), The LDAP Lisp Object, The Low-Level LDAP API
 @comment  node-name,  next,  previous,  up
 @subsubsection Opening and Closing a LDAP Connection
 
@@ -265,7 +202,7 @@
 @code{krbv41} and @code{krbv42}.
 @item binddn
 The distinguished name of the user to bind as.  This may look like
-@samp{c=com, o=Acme, cn=Babs Jensen}, see RFC 1779 for details.
+@samp{cÿ, o¬me, cnÿnny Bugs}, see RFC 1779 for details.
 @item passwd
 The password to use for authentication.
 @item deref
@@ -295,17 +232,18 @@
 @end defun
 
 
-@node Low-level Operations on a LDAP Server,  , Opening and Closing a LDAP Connection, The Low-Level LDAP API
+@node Searching on a LDAP Server (Low-level),  , Opening and Closing a LDAP Connection, The Low-Level LDAP API
 @comment  node-name,  next,  previous,  up
-@subsubsection Low-level Operations on a LDAP Server
+@subsubsection Searching on a LDAP Server (Low-level)
 
-@code{ldap-search-basic} is the low-level primitive to perform a
+@code{ldap-search-internal} is the low-level primitive to perform a
 search on a LDAP server.  It works directly on an open LDAP connection
 thus requiring a preliminary call to @code{ldap-open}.  Multiple
 searches can be made on the same connection, then the session must be
 closed with @code{ldap-close}.
 
-@defun ldap-search-basic ldap filter base scope attrs attrsonly
+
+@defun ldap-search-internal ldap filter base scope attrs attrsonly
 Perform a search on an open connection @var{ldap} created with @code{ldap-open}.
 @var{filter} is a filter string for the search @pxref{Syntax of Search Filters}
 @var{base} is the distinguished name at which to start the search.
@@ -317,138 +255,12 @@
 for each matching entry. If @code{nil} all available attributes are returned.
 If @code{attrsonly} is non-@code{nil} then only the attributes are retrieved, not
 their associated values
-If @code{withdn} is non-@code{nil} then each entry in the result is prepended with
-its distinguished name DN
-If @code{verbose} is non-@code{nil} then progress messages are echoed
-The function returns a list of matching entries.  Each entry  is itself
-an alist of attribute/value pairs optionally preceded by the DN of the
-entry according to the value of @code{withdn}.
-@end defun
-
-@defun ldap-add ldap dn entry
-Add @var{entry} to a LDAP directory which a connection @var{ldap} has
-been opened to with @code{ldap-open}.
-@var{dn} is the distinguished name of the entry to add.
-@var{entry} is an entry specification, i.e., a list of cons cells
-containing attribute/value string pairs.
-@end defun
-
-@defun ldap-modify ldap dn mods
-Modify an entry in an LDAP directory.
-@var{ldap} is an LDAP connection object created with @code{ldap-open}.
-@var{dn} is the distinguished name of the entry to modify.
-@var{mods} is a list of modifications to apply.
-A modification is a list of the form @code{(MOD-OP ATTR VALUE1 VALUE2 ...)}
-@var{mod-op} and @var{attr} are mandatory, @var{values} are optional depending on @var{mod-op}.
-@var{mod-op} is the type of modification, one of the symbols @code{add}, @code{delete}
-or @code{replace}. @var{attr} is the LDAP attribute type to modify
-@end defun
-
-@defun ldap-delete ldap dn
-Delete an entry to an LDAP directory.
-@var{ldap} is an LDAP connection object created with @code{ldap-open}.
-@var{dn} is the distinguished name of the entry to delete
+The function returns a list of matching entries.  Each entry being itself
+an alist of attribute/values.
 @end defun
 
 
 
-@node LDAP Internationalization,  , The Low-Level LDAP API, XEmacs LDAP API
-@comment  node-name,  next,  previous,  up
-@subsection LDAP Internationalization
-
-The XEmacs LDAP API provides basic internationalization features based
-on the LDAP v3 specification (essentially RFC2252 on "LDAP v3 Attribute
-Syntax Definitions").  Unfortunately since there is currently no free
-LDAP v3 server software, this part has not received much testing and
-should be considered experimental.  The framework is in place though.
-
-@defun ldap-decode-attribute attr
-Decode the attribute/value pair @var{attr} according to LDAP rules.
-The attribute name is looked up in @code{ldap-attribute-syntaxes-alist}
-and the corresponding decoder is then retrieved from
-@code{ldap-attribute-syntax-decoders}' and applied on the value(s).
-@end defun
-
-@menu
-* LDAP Internationalization Variables::  
-* Encoder/Decoder Functions::   
-@end menu
-
-@node LDAP Internationalization Variables, Encoder/Decoder Functions, LDAP Internationalization, LDAP Internationalization
-@comment  node-name,  next,  previous,  up
-@subsubsection LDAP Internationalization Variables
-
-@defvar ldap-ignore-attribute-codings
-If non-@code{nil}, no encoding/decoding will be performed LDAP attribute values
-@end defvar
-
-@defvar ldap-coding-system
-Coding system of LDAP string values.
-LDAP v3 specifies the coding system of strings to be UTF-8.  
-You need an XEmacs with Mule support for this.
-@end defvar
-
-@defvar ldap-default-attribute-decoder
-Decoder function to use for attributes whose syntax is unknown.  Such a
-function receives an encoded attribute value as a string and should
-return the decoded value as a string
-@end defvar
-
-@defvar ldap-attribute-syntax-encoders
-A vector of functions used to encode LDAP attribute values.
-The sequence of functions corresponds to the sequence of LDAP attribute syntax
-object identifiers of the form 1.3.6.1.4.1.1466.1115.121.1.* as defined in 
-RFC2252 section 4.3.2. As of this writing, only a few encoder functions
-are available.
-@end defvar
-
-@defvar ldap-attribute-syntax-decoders
-A vector of functions used to decode LDAP attribute values.
-The sequence of functions corresponds to the sequence of LDAP attribute syntax
-object identifiers of the form 1.3.6.1.4.1.1466.1115.121.1.* as defined in 
-RFC2252 section 4.3.2. As of this writing, only a few decoder functions
-are available.
-@end defvar
-
-@defvar ldap-attribute-syntaxes-alist
-A map of LDAP attribute names to their type object id minor number.
-This table is built from RFC2252 Section 5 and RFC2256 Section 5
-@end defvar
-
-@node Encoder/Decoder Functions,  , LDAP Internationalization Variables, LDAP Internationalization
-@comment  node-name,  next,  previous,  up
-@subsubsection Encoder/Decoder Functions
-
-@defun ldap-encode-boolean bool
-A function that encodes an elisp boolean @var{bool} into a LDAP
-boolean string representation
-@end defun
-
-@defun ldap-decode-boolean str
-A function that decodes a LDAP boolean string representation
-@var{str} into an elisp boolean
-@end defun
-
-@defun ldap-decode-string str
-Decode a string @var{str} according to `ldap-coding-system'
-@end defun
-
-@defun ldap-encode-string str
-Encode a string @var{str} according to `ldap-coding-system'
-@end defun
-
-@defun ldap-decode-address str
-Decode an address @var{str} according to `ldap-coding-system' and
-replacing $ signs with newlines as specified by LDAP encoding rules for
-addresses
-@end defun
-
-@defun ldap-encode-address str
-Encode an address @var{str} according to `ldap-coding-system' and
-replacing newlines with $ signs as specified by LDAP encoding rules for
-addresses
-@end defun
-
 
 
 @node Syntax of Search Filters,  , XEmacs LDAP API, LDAP Support
@@ -487,3 +299,6 @@
 matches records of class @code{Person} containing a @code{mail}
 attribute and corresponding to people whose last name is @code{Smith} or 
 whose first name is @code{John}.
+
+
+