[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: How get more detailed error information than the provided by ldap_err2string?



Werner - Google wrote:
Hi,

I've the sample code bellow, and when i intentionally put the wrong
credentials, i get from "ldap_err2string( rc ) the error message:
"Invalid credentials".

Read the ldap_get_option(3), ldap_bind(3), and ldap_result(3) manpages.

But monitoring network traffic with wireshark, i can see that on the
bindResponse packet that returns from the server, i also get a more detailed
message. In my/this test case,

"errorMessage: 80090308: LdapErr: DSID-0C0903AA, comment:
AcceptSecurityContext error, data 525, v1772"

attached is also an image of the wireshark showing what i mean.

Question is, is there a way i could retrieve this more detailed message?

Thanks in advance for any help
Regards.

---
sample code:


if ( (ld = (LDAP *)ldap_init( pHostName, iPortNum )) == NULL ) {
perror( "ldap_init failed. Reason?:" );
exit ( 1 );
}

if ( (rc=ldap_set_option( ld, LDAP_OPT_PROTOCOL_VERSION, &version)) !=
LDAP_SUCCESS ){
fprintf( stderr, "ldap_set_option(LDAP_OPT_PROTOCOL_VERSION): %s\n",
ldap_err2string( rc ) );
exit( 1 );
}

if ( (rc=ldap_set_option(ld, LDAP_OPT_REFERRALS, LDAP_OPT_OFF)) != LDAP_SUCCESS){
fprintf( stderr, "ldap_set_option(LDAP_OPT_REFERRALS): %s\n", ldap_err2string(
rc ));
exit( 1 );
}

rc = ldap_simple_bind_s( ld, "auth_dn", "auth_pw" );


if ( rc != LDAP_SUCCESS ) {
fprintf( stderr, "ldap_simple_bind_s() Failed: %s [%d]\n",
ldap_err2string(rc), rc);
ldap_unbind_s(ld); /* try unbind the failed connection anyway */
exit ( 1 );
}




--
  -- Howard Chu
  CTO, Symas Corp.           http://www.symas.com
  Director, Highland Sun     http://highlandsun.com/hyc/
  Chief Architect, OpenLDAP  http://www.openldap.org/project/