Directory Services

Understanding Return Values

Most LDAP functions return a numeric Return Value that indicates whether the function call succeeds or what type of error was encountered. However, this information is sometimes not enough to understand the actual problem.

Requesting the server error code can often often help identify the source of the problem. The ldap_get_option function is used with LDAP version 3 to retrieve the server error string.

		 // ld is the LDAP connection.
PCHAR pServerError; 	// Use PWCHAR if Unicode.

ULONG ulRtn = ldap_get_option(ld,LDAP_OPT_SERVER_ERROR,(void*)&pServerError);
if (ulRtn == LDAP_SUCCESS)
{
	// Handle the error string.

	ldap_memfree(pErrorString);
}

The following code example can be used to identify the Win32 error code that the server embeds at the start of the server error string.

// ld is the LDAP connection.
ULONG ulServerError;

ULONG ulRtn = ldap_get_option(ld,LDAP_OPT_SERVER_ERROR,(void*)&ulServerError);
if (ulRtn == LDAP_SUCCESS)
{
	// Handle the error code.
}