version 1.50, 2003/05/22 14:21:14
|
version 1.50.2.2, 2003/10/06 14:57:29
|
Line 1
|
Line 1
|
/* $OpenLDAP: pkg/ldap/libraries/libldap/sasl.c,v 1.49 2003/02/13 22:02:31 hyc Exp $ */ |
/* $OpenLDAP: pkg/ldap/libraries/libldap/sasl.c,v 1.50.2.1 2003/09/18 15:43:32 kurt Exp $ */ |
/* |
/* |
* Copyright 1998-2003 The OpenLDAP Foundation, All Rights Reserved. |
* Copyright 1998-2003 The OpenLDAP Foundation, All Rights Reserved. |
* COPYING RESTRICTIONS APPLY, see COPYRIGHT file |
* COPYING RESTRICTIONS APPLY, see COPYRIGHT file |
*/ |
*/ |
|
/* |
|
* Portions Copyright (C) The Internet Society (1997) |
|
* ASN.1 fragments are from RFC 2251; see RFC for full legal notices. |
|
*/ |
|
|
/* |
/* |
* BindRequest ::= SEQUENCE { |
* BindRequest ::= SEQUENCE { |
Line 429 ldap_sasl_interactive_bind_s(
|
Line 433 ldap_sasl_interactive_bind_s(
|
void *defaults ) |
void *defaults ) |
{ |
{ |
int rc; |
int rc; |
|
char *smechs = NULL; |
|
|
#if defined( LDAP_R_COMPILE ) && defined( HAVE_CYRUS_SASL ) |
#if defined( LDAP_R_COMPILE ) && defined( HAVE_CYRUS_SASL ) |
ldap_pvt_thread_mutex_lock( &ldap_int_sasl_mutex ); |
ldap_pvt_thread_mutex_lock( &ldap_int_sasl_mutex ); |
Line 439 ldap_sasl_interactive_bind_s(
|
Line 444 ldap_sasl_interactive_bind_s(
|
* ask all the time. No, we don't ever actually bind, but I'll |
* ask all the time. No, we don't ever actually bind, but I'll |
* let the final bind handler take care of saving the cdn. |
* let the final bind handler take care of saving the cdn. |
*/ |
*/ |
rc = ldap_simple_bind(ld, dn, NULL); |
rc = ldap_simple_bind( ld, dn, NULL ); |
return rc < 0 ? rc : 0; |
rc = rc < 0 ? rc : 0; |
|
goto done; |
} else |
} else |
#endif |
#endif |
if( mechs == NULL || *mechs == '\0' ) { |
|
char *smechs; |
|
|
|
|
#ifdef HAVE_CYRUS_SASL |
|
if( mechs == NULL || *mechs == '\0' ) { |
|
mechs = ld->ld_options.ldo_def_sasl_mech; |
|
} |
|
#endif |
|
|
|
if( mechs == NULL || *mechs == '\0' ) { |
rc = ldap_pvt_sasl_getmechs( ld, &smechs ); |
rc = ldap_pvt_sasl_getmechs( ld, &smechs ); |
|
|
if( rc != LDAP_SUCCESS ) { |
if( rc != LDAP_SUCCESS ) { |
goto done; |
goto done; |
} |
} |
|
|
#ifdef NEW_LOGGING |
#ifdef NEW_LOGGING |
LDAP_LOG ( TRANSPORT, DETAIL1, |
LDAP_LOG ( TRANSPORT, DETAIL1, |
"ldap_interactive_sasl_bind_s: server supports: %s\n", |
"ldap_sasl_interactive_bind_s: server supports: %s\n", |
smechs, 0, 0 ); |
smechs, 0, 0 ); |
#else |
#else |
Debug( LDAP_DEBUG_TRACE, |
Debug( LDAP_DEBUG_TRACE, |
"ldap_interactive_sasl_bind_s: server supports: %s\n", |
"ldap_sasl_interactive_bind_s: server supports: %s\n", |
smechs, 0, 0 ); |
smechs, 0, 0 ); |
#endif |
#endif |
|
|
Line 467 ldap_sasl_interactive_bind_s(
|
Line 477 ldap_sasl_interactive_bind_s(
|
} else { |
} else { |
#ifdef NEW_LOGGING |
#ifdef NEW_LOGGING |
LDAP_LOG ( TRANSPORT, DETAIL1, |
LDAP_LOG ( TRANSPORT, DETAIL1, |
"ldap_interactive_sasl_bind_s: user selected: %s\n", mechs, 0, 0 ); |
"ldap_sasl_interactive_bind_s: user selected: %s\n", |
|
mechs, 0, 0 ); |
#else |
#else |
Debug( LDAP_DEBUG_TRACE, |
Debug( LDAP_DEBUG_TRACE, |
"ldap_interactive_sasl_bind_s: user selected: %s\n", |
"ldap_sasl_interactive_bind_s: user selected: %s\n", |
mechs, 0, 0 ); |
mechs, 0, 0 ); |
#endif |
#endif |
} |
} |
Line 483 done:
|
Line 494 done:
|
#if defined( LDAP_R_COMPILE ) && defined( HAVE_CYRUS_SASL ) |
#if defined( LDAP_R_COMPILE ) && defined( HAVE_CYRUS_SASL ) |
ldap_pvt_thread_mutex_unlock( &ldap_int_sasl_mutex ); |
ldap_pvt_thread_mutex_unlock( &ldap_int_sasl_mutex ); |
#endif |
#endif |
|
if ( smechs ) LDAP_FREE( smechs ); |
|
|
return rc; |
return rc; |
} |
} |