ldap_perror,  ld_errno,  ldap_result2error,  ldap_errlist,
       ldap_err2string - LDAP protocol error handling routines


SYNOPSIS

       #include <ldap.h>

       struct ldaperror {
           int e_code;
           char *e_reason;
       };

       struct ldaperror ldap_errlist[];

       char *ldap_err2string(err)
       int err;

       void ldap_perror(ld, s)
       LDAP *ld;
       char *s;

       int ldap_result2error(ld, res, freeit)
       LDAP *ld;
       LDAPMessage *res;
       int freeit;


DESCRIPTION

       These routines provide interpretation of the various error
       codes  returned by the LDAP protocol and LDAP library rou­
       tines, and assigned to the ld_errno field in the ld struc­
       ture.

       The  ldap_result2error()  routine  takes  res, a result as
       produced  by  ldap_result(3)  or   ldap_search_s(3),   and
       returns  the  corresponding  error  code.   Possible error
       codes are listed below.  If the freeit  parameter  is  non
       zero  it  indicates that the res parameter should be freed
       by a call to ldap_msgfree(3) after the error code has been
       extracted.   The ld_errno field in ld is set and returned.

       The returned value can be passed to  ldap_err2string()  or
       looked  up  in ldap_errlist[] to get a text description of
       the message.  The string returned  from  ldap_err2string()
       is a pointer to a static area that should not be modified.
       The last element in the ldap_errlist[] array  is  signaled
       by an error code of -1.

       The  ldap_perror() routine can be called to print an indi­
       cation of the error on standard error, similar to the  way
       perror(3) works.


ERRORS

       The possible values for an ldap error code are:


       LDAP_OPERATIONS_ERROR
                           An operations error occurred.

       LDAP_PROTOCOL_ERROR A protocol violation was detected.

       LDAP_TIMELIMIT_EXCEEDED
                           An LDAP time limit was exceeded.

       LDAP_SIZELIMIT_EXCEEDED
                           An LDAP size limit was exceeded.

       LDAP_COMPARE_FALSE  A compare operation returned false.

       LDAP_COMPARE_TRUE   A compare operation returned true.

       LDAP_STRONG_AUTH_NOT_SUPPORTED
                           The   LDAP  server  does  not  support
                           strong authentication.

       LDAP_STRONG_AUTH_REQUIRED
                           Strong authentication is required  for
                           the operation.

       LDAP_PARTIAL_RESULTS
                           Partial results only returned.

       LDAP_NO_SUCH_ATTRIBUTE
                           The  attribute type specified does not
                           exist in the entry.

       LDAP_UNDEFINED_TYPE The  attribute   type   specified   is
                           invalid.

       LDAP_INAPPROPRIATE_MATCHING
                           Filter  type  not  supported  for  the
                           specified attribute.

       LDAP_CONSTRAINT_VIOLATION
                           An attribute value specified  violates
                           some constraint (e.g., a postalAddress
                           has too many lines, or a line that  is
                           too long).

       LDAP_TYPE_OR_VALUE_EXISTS
                           An  attribute  type or attribute value
                           specified already exists in the entry.

       LDAP_INVALID_SYNTAX An  invalid attribute value was speci­
                           fied.

       LDAP_NO_SUCH_OBJECT The specified object does not exist in
                           The Directory.

                           nonexistent entry.

       LDAP_INVALID_DN_SYNTAX
                           A syntactically invalid DN was  speci­
                           fied.

       LDAP_IS_LEAF        The object specified is a leaf.

       LDAP_ALIAS_DEREF_PROBLEM
                           A  problem was encountered when deref­
                           erencing an alias.

       LDAP_INAPPROPRIATE_AUTH
                           Inappropriate authentication was spec­
                           ified   (e.g.,   LDAP_AUTH_SIMPLE  was
                           specified and the entry does not  have
                           a userPassword attribute).

       LDAP_INVALID_CREDENTIALS
                           Invalid   credentials  were  presented
                           (e.g., the wrong password).

       LDAP_INSUFFICIENT_ACCESS
                           The user has  insufficient  access  to
                           perform the operation.

       LDAP_BUSY           The DSA is busy.

       LDAP_UNAVAILABLE    The DSA is unavailable.

       LDAP_UNWILLING_TO_PERFORM
                           The  DSA  is  unwilling to perform the
                           operation.

       LDAP_LOOP_DETECT    A loop was detected.

       LDAP_NAMING_VIOLATION
                           A naming violation occurred.

       LDAP_OBJECT_CLASS_VIOLATION
                           An  object  class  violation  occurred
                           (e.g.,  a "must" attribute was missing
                           from the entry).

       LDAP_NOT_ALLOWED_ON_NONLEAF
                           The operation is not allowed on a non­
                           leaf object.

       LDAP_NOT_ALLOWED_ON_RDN
                           The  operation  is  not  allowed on an
                           RDN.

       LDAP_ALREADY_EXISTS The entry already exists.

                           Object  class  modifications  are  not
                           allowed.

       LDAP_OTHER          An unknown error occurred.

       LDAP_SERVER_DOWN    The  LDAP  library  can't  contact the
                           LDAP server.

       LDAP_LOCAL_ERROR    Some local error  occurred.   This  is
                           usually  a failed dynamic memory allo­
                           cation.

       LDAP_ENCODING_ERROR An  error  was  encountered   encoding
                           parameters to send to the LDAP server.

       LDAP_DECODING_ERROR An error was  encountered  decoding  a
                           result from the LDAP server.

       LDAP_TIMEOUT        A timelimit was exceeded while waiting
                           for a result.

       LDAP_AUTH_UNKNOWN   The authentication method specified to
                           ldap_bind() is not known.

       LDAP_FILTER_ERROR   An  invalid  filter  was  supplied  to
                           ldap_search() (e.g., unbalanced paren­
                           theses).

       LDAP_PARAM_ERROR    An  ldap routine was called with a bad
                           parameter (e.g., a  NULL  ld  pointer,
                           etc.).

       LDAP_NO_MEMORY      An  memory allocation (e.g., malloc(3)
                           or  other  dynamic  memory  allocator)
                           call  failed  in  an ldap library rou­
                           tine.


SEE ALSO

       ldap(3), perror(3)


ACKNOWLEDGEMENTS

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


Man(1) output converted with man2html