#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 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 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) or other dynamic memory
allocator) call failed in an ldap
library routine.