Skip to content
Snippets Groups Projects
Commit f4ff5a92 authored by Kurt Zeilenga's avatar Kurt Zeilenga
Browse files

EXPERIMENTAL: Use sasl bind for simple bind.

Add sasl.c to libldap_r.dsp.
parent 64d57256
No related branches found
No related tags found
No related merge requests found
......@@ -52,43 +52,32 @@
*/
int
ldap_simple_bind( LDAP *ld, LDAP_CONST char *dn, LDAP_CONST char *passwd )
ldap_simple_bind(
LDAP *ld,
LDAP_CONST char *dn,
LDAP_CONST char *passwd )
{
BerElement *ber;
int rc;
int msgid;
struct berval cred;
Debug( LDAP_DEBUG_TRACE, "ldap_simple_bind\n", 0, 0, 0 );
assert( ld != NULL );
assert( LDAP_VALID( ld ) );
if ( dn == NULL )
dn = "";
if ( passwd == NULL )
passwd = "";
/* create a message to send */
if ( (ber = ldap_alloc_ber_with_options( ld )) == NULL ) {
return( -1 );
if ( passwd != NULL ) {
cred.bv_val = (char *) passwd;
cred.bv_len = strlen( passwd );
} else {
cred.bv_val = "";
cred.bv_len = 0;
}
assert( BER_VALID( ber ) );
/* fill it in */
if ( ber_printf( ber, "{it{ists}}", ++ld->ld_msgid, LDAP_REQ_BIND,
ld->ld_version, dn, LDAP_AUTH_SIMPLE, passwd ) == -1 ) {
ld->ld_errno = LDAP_ENCODING_ERROR;
ber_free( ber, 1 );
return( -1 );
}
rc = ldap_sasl_bind( ld, dn, LDAP_SASL_SIMPLE, &cred,
NULL, NULL, &msgid );
#ifndef LDAP_NOCACHE
if ( ld->ld_cache != NULL ) {
ldap_flush_cache( ld );
}
#endif /* !LDAP_NOCACHE */
/* send the message */
return( ldap_send_initial_request( ld, LDAP_REQ_BIND, dn, ber ));
return rc == LDAP_SUCCESS ? msgid : -1;
}
/*
......@@ -105,16 +94,18 @@ ldap_simple_bind( LDAP *ld, LDAP_CONST char *dn, LDAP_CONST char *passwd )
int
ldap_simple_bind_s( LDAP *ld, LDAP_CONST char *dn, LDAP_CONST char *passwd )
{
int msgid;
LDAPMessage *result;
struct berval cred;
Debug( LDAP_DEBUG_TRACE, "ldap_simple_bind_s\n", 0, 0, 0 );
if ( (msgid = ldap_simple_bind( ld, dn, passwd )) == -1 )
return( ld->ld_errno );
if ( ldap_result( ld, msgid, 1, NULL, &result ) == -1 )
return( ld->ld_errno ); /* ldap_result sets ld_errno */
if ( passwd != NULL ) {
cred.bv_val = (char *) passwd;
cred.bv_len = strlen( passwd );
} else {
cred.bv_val = "";
cred.bv_len = 0;
}
return( ldap_result2error( ld, result, 1 ) );
return ldap_sasl_bind_s( ld, dn, LDAP_SASL_SIMPLE, &cred,
NULL, NULL, NULL );
}
......@@ -288,6 +288,10 @@ SOURCE=..\libldap\result.c
# End Source File
# Begin Source File
SOURCE=..\libldap\sasl.c
# End Source File
# Begin Source File
SOURCE=..\libldap\sbind.c
# End Source File
# Begin Source File
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment