ldap_perror, ld_errno, ldap_result2error, ldap_errlist, ldap_err2string
- LDAP protocol error handling routines
OpenLDAP LDAP (libldap, -lldap)
char *ldap_err2string( int err );
void ldap_perror( LDAP *ld, const char *s )
int ldap_result2error( LDAP *ld, LDAPMessage *res, int freeit )
These routines provide interpretation of the various error codes
returned by the LDAP protocol and LDAP library routines or associated
with an LDAP session. The error code associated with an LDAP session
is accessible using ldap_get_option(3) and ldap_set_option(3) with the
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() 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 ldap_perror() routine can be called to print an indication of the
error on standard error, similar to the way perror(3) works.
The possible values for an ldap error code are:
LDAP_SUCCESS The request was successful.
An operations error occurred.
LDAP_PROTOCOL_ERROR A protocol violation was detected.
An LDAP time limit was exceeded.
An LDAP size limit was exceeded.
LDAP_COMPARE_FALSE A compare operation returned false.
LDAP_COMPARE_TRUE A compare operation returned true.
The LDAP server does not support strong authentica‐
Strong authentication is required for the opera‐
Partial results only returned.
The attribute type specified does not exist in the
LDAP_UNDEFINED_TYPE The attribute type specified is invalid.
Filter type not supported for the specified
An attribute value specified violates some con‐
straint (e.g., a postalAddress has too many lines,
or a line that is too long).
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 Direc‐
LDAP_ALIAS_PROBLEM An alias in The Directory points to a nonexistent
A syntactically invalid DN was specified.
LDAP_IS_LEAF The object specified is a leaf.
A problem was encountered when dereferencing an
Inappropriate authentication was specified (e.g.,
LDAP_AUTH_SIMPLE was specified and the entry does
not have a userPassword attribute).
Invalid credentials were presented (e.g., the wrong
The user has insufficient access to perform the
LDAP_BUSY The DSA is busy.
LDAP_UNAVAILABLE The DSA is unavailable.
The DSA is unwilling to perform the operation.
LDAP_LOOP_DETECT A loop was detected.
A naming violation occurred.
An object class violation occurred (e.g., a "must"
attribute was missing from the entry).
The operation is not allowed on a nonleaf object.
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 allocation.
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_TIMEOUT A timelimit was exceeded while waiting for a
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.
LDAP_NO_MEMORY An memory allocation (e.g., malloc(3) or other
dynamic memory allocator) call failed in an ldap
SEE ALSOldap(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.
OpenLDAP 2.1.X RELEASEDATE LDAP_ERROR(3)