LDAP_ERROR(3)

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

SYNOPSIS
#include <lber.h>
#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 routines, and assigned to the ld_errno field in the ld structure.

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 indication of the error on standard error, similar to the way perror(3) works.

ERRORS
The possible values for an ldap error code are:

LDAP_SUCCESS
    The request was successful.

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 specified.

LDAP_NO_SUCH_OBJECT
    The specified object does not exist in The Directory.

LDAP_ALIAS_PROBLEM
    An alias in The Directory points to a nonexistent entry.

LDAP_INVALID_DN_SYNTAX
    A syntactically invalid DN was specified.

LDAP_IS_LEAF
    The object specified is a leaf.

LDAP_ALIAS_DEREF_PROBLEM
    A problem was encountered when dereferencing an alias.

LDAP_INAPPROPRIATE_AUTH
    Inappropriate authentication was specified (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 nonleaf object.

LDAP_NOT_ALLOWED_ON_RDN
    The operation is not allowed on an RDN.

LDAP_ALREADY_EXISTS
    The entry already exists.

LDAP_NO_OBJECT_CLASS_MODS
    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 malloc.

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 parentheses).

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)) call failed in an ldap library routine.

SEE ALSO
ldap(3), perror(3)

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