import xemacs-21.2.37
[chise/xemacs-chise.git.1] / man / lispref / ldap.texi
index 6e9c686..827fca0 100644 (file)
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the XEmacs Lisp Reference Manual.
-@c Copyright (C) 1998 Free Software Foundation, Inc. 
+@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
@@ -58,7 +58,7 @@ and ensuring compliance with LDAP internationalization rules and formats
 
 @menu
 * LDAP Variables::              Lisp variables related to LDAP
-* The High-Level LDAP API::     High-level LDAP lisp functions 
+* 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
@@ -70,7 +70,7 @@ and ensuring compliance with LDAP internationalization rules and formats
 
 @defvar ldap-default-host
 The default LDAP server hostname.
-A TCP port number can be appended to that name using a colon as 
+A TCP port number can be appended to that name using a colon as
 a separator.
 @end defvar
 
@@ -87,7 +87,7 @@ Acme organization in the United States.
 @end defvar
 
 @defvar ldap-host-parameters-alist
-An alist of per host options for LDAP transactions.  
+An alist of per host options for LDAP transactions.
 The list elements look like @code{(HOST PROP1 VAL1 PROP2 VAL2 ...)}
 @var{host} is the name of an LDAP server. A TCP port number can be
 appended to that name using a colon as a separator.
@@ -105,12 +105,12 @@ The authentication method to use, possible values depend on the LDAP
 library XEmacs was compiled with, they may include @code{simple},
 @code{krbv41} and @code{krbv42}.
 @item base
-The base for the search. This may look like @samp{cÿ, o¬me}, see 
+The base for the search. This may look like @samp{cÿ, o¬me}, see
 RFC 1779 for syntax details.
 @item scope
-One of the symbols @code{base}, @code{onelevel} or @code{subtree} 
+One of the symbols @code{base}, @code{onelevel} or @code{subtree}
 indicating the scope of the search limited to a base
-object, to a single level or to the whole subtree. 
+object, to a single level or to the whole subtree.
 @item deref
 The dereference policy is one of the symbols @code{never},
 @code{always}, @code{search} or @code{find} and defines how aliases are
@@ -146,63 +146,64 @@ 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}.  
+Low-Level LDAP API}.
 
 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 
+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.
 
-@defun ldap-search-entries filter &optional host attributes attrsonly withdn
+@deffn Command ldap-search-entries filter &optional host attributes attrsonly withdn
 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{attributes} is the specific attributes to retrieve, @code{nil} means 
+@var{attributes} is the specific attributes to retrieve, @code{nil} means
 retrieve all.
-@var{attrsonly} if non-@code{nil} retrieves the attributes only without 
+@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 
+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
+@end deffn
 
 @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) ...)} 
+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.
+are cons cells containing attribute/value string pairs.
+@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-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{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"
+@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 
+@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{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
 
@@ -222,9 +223,9 @@ 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::  
+* The LDAP Lisp Object::
+* Opening and Closing a LDAP Connection::
+* Low-level Operations on a LDAP Server::
 @end menu
 
 @node The LDAP Lisp Object, Opening and Closing a LDAP Connection, The Low-Level LDAP API, The Low-Level LDAP API
@@ -239,11 +240,11 @@ This function returns non-@code{nil} if @var{object} is a @code{ldap} object.
 @end defun
 
 @defun ldap-host ldap
-Return the server host of the connection represented by @var{ldap}
+Return the server host of the connection represented by @var{ldap}.
 @end defun
 
 @defun ldap-live-p ldap
-Return non-@code{nil} if @var{ldap} is an active LDAP connection
+Return non-@code{nil} if @var{ldap} is an active LDAP connection.
 @end defun
 
 
@@ -274,13 +275,13 @@ The dereference policy is one of the symbols @code{never},
 dereferenced.
 @table @code
 @item never
-Aliases are never dereferenced
+Aliases are never dereferenced.
 @item always
-Aliases are always dereferenced
+Aliases are always dereferenced.
 @item search
-Aliases are dereferenced when searching
+Aliases are dereferenced when searching.
 @item find
-Aliases are dereferenced when locating the base object for the search
+Aliases are dereferenced when locating the base object for the search.
 @end table
 The default is @code{never}.
 @item timelimit
@@ -291,7 +292,7 @@ The maximum number of matches to return for searches performed on this connectio
 @end defun
 
 @defun ldap-close ldap
-Close the connection represented by @var{ldap}
+Close the connection represented by @var{ldap}.
 @end defun
 
 
@@ -305,7 +306,7 @@ 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-basic ldap filter &optional base scope attrs attrsonly withdn verbose
 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.
@@ -313,16 +314,16 @@ Perform a search on an open connection @var{ldap} created with @code{ldap-open}.
 @code{subtree} indicating the scope of the search limited to a base
 object, to a single level or to the whole subtree.  The default is
 @code{subtree}.
-@code{attrs} is a list of strings indicating which attributes to retrieve
+@var{attrs} is a list of strings indicating which attributes to retrieve
 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
+If @var{attrsonly} is non-@code{nil} then only the attributes are
+retrieved, not their associated values.
+If @var{withdn} is non-@code{nil} then each entry in the result is
+prepended with its distinguished name DN.
+If @var{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}.
+entry according to the value of @var{withdn}.
 @end defun
 
 @defun ldap-add ldap dn entry
@@ -341,13 +342,13 @@ Modify an entry in an LDAP directory.
 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
+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
+@var{dn} is the distinguished name of the entry to delete.
 @end defun
 
 
@@ -370,8 +371,8 @@ and the corresponding decoder is then retrieved from
 @end defun
 
 @menu
-* LDAP Internationalization Variables::  
-* Encoder/Decoder Functions::   
+* LDAP Internationalization Variables::
+* Encoder/Decoder Functions::
 @end menu
 
 @node LDAP Internationalization Variables, Encoder/Decoder Functions, LDAP Internationalization, LDAP Internationalization
@@ -384,20 +385,20 @@ If non-@code{nil}, no encoding/decoding will be performed LDAP attribute values
 
 @defvar ldap-coding-system
 Coding system of LDAP string values.
-LDAP v3 specifies the coding system of strings to be UTF-8.  
+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
+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 
+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
@@ -405,14 +406,14 @@ are available.
 @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 
+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
+This table is built from RFC2252 Section 5 and RFC2256 Section 5.
 @end defvar
 
 @node Encoder/Decoder Functions,  , LDAP Internationalization Variables, LDAP Internationalization
@@ -421,32 +422,32 @@ This table is built from RFC2252 Section 5 and RFC2256 Section 5
 
 @defun ldap-encode-boolean bool
 A function that encodes an elisp boolean @var{bool} into a LDAP
-boolean string representation
+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
+@var{str} into an elisp boolean.
 @end defun
 
 @defun ldap-decode-string str
-Decode a string @var{str} according to `ldap-coding-system'
+Decode a string @var{str} according to @var{ldap-coding-system}.
 @end defun
 
 @defun ldap-encode-string str
-Encode a string @var{str} according to `ldap-coding-system'
+Encode a string @var{str} according to @var{ldap-coding-system}.
 @end defun
 
 @defun ldap-decode-address str
-Decode an address @var{str} according to `ldap-coding-system' and
+Decode an address @var{str} according to @var{ldap-coding-system} and
 replacing $ signs with newlines as specified by LDAP encoding rules for
-addresses
+addresses.
 @end defun
 
 @defun ldap-encode-address str
-Encode an address @var{str} according to `ldap-coding-system' and
+Encode an address @var{str} according to @var{ldap-coding-system} and
 replacing newlines with $ signs as specified by LDAP encoding rules for
-addresses
+addresses.
 @end defun
 
 
@@ -468,9 +469,9 @@ In that syntax simple filters have the form:
 @code{<value>} is the corresponding value.  This is generally an exact
 string but may also contain @code{*} characters as wildcards
 
-@code{filtertype} is one @code{=} @code{~=}, @code{<=}, @code{>=} which 
+@code{filtertype} is one @code{=} @code{~=}, @code{<=}, @code{>=} which
 respectively describe equality, approximate equality, inferiority and
-superiority. 
+superiority.
 
 Thus @code{(cn=John Smith)} matches all records having a canonical name
 equal to John Smith.
@@ -485,5 +486,5 @@ not operators.
 
 @code{(&(objectClass=Person)(mail=*)(|(sn=Smith)(givenname=John)))}
 matches records of class @code{Person} containing a @code{mail}
-attribute and corresponding to people whose last name is @code{Smith} or 
+attribute and corresponding to people whose last name is @code{Smith} or
 whose first name is @code{John}.