Fix SPASSWD merge for real

This commit is contained in:
Kurt Zeilenga 2000-09-20 17:34:06 +00:00
parent 3c852017be
commit 4617f2e946
4 changed files with 14 additions and 4 deletions

View File

@ -68,7 +68,7 @@ ldbm_back_bind(
/* allow noauth binds */ /* allow noauth binds */
rc = 1; rc = 1;
if ( method == LDAP_AUTH_SIMPLE ) { if ( method == LDAP_AUTH_SIMPLE ) {
if ( be_isroot_pw( be, dn, cred ) ) { if ( be_isroot_pw( be, conn, dn, cred ) ) {
*edn = ch_strdup( be_root_dn( be ) ); *edn = ch_strdup( be_root_dn( be ) );
rc = 0; /* front end will send result */ rc = 0; /* front end will send result */
@ -139,7 +139,7 @@ ldbm_back_bind(
switch ( method ) { switch ( method ) {
case LDAP_AUTH_SIMPLE: case LDAP_AUTH_SIMPLE:
/* check for root dn/passwd */ /* check for root dn/passwd */
if ( be_isroot_pw( be, dn, cred ) ) { if ( be_isroot_pw( be, conn, dn, cred ) ) {
/* front end will send result */ /* front end will send result */
if(*edn != NULL) free( *edn ); if(*edn != NULL) free( *edn );
*edn = ch_strdup( be_root_dn( be ) ); *edn = ch_strdup( be_root_dn( be ) );

View File

@ -504,7 +504,10 @@ be_root_dn( Backend *be )
} }
int int
be_isroot_pw( Backend *be, const char *ndn, struct berval *cred ) be_isroot_pw( Backend *be,
Connection *conn,
const char *ndn,
struct berval *cred )
{ {
int result; int result;
@ -526,6 +529,9 @@ be_isroot_pw( Backend *be, const char *ndn, struct berval *cred )
result = lutil_passwd( &be->be_root_pw, cred, NULL ); result = lutil_passwd( &be->be_root_pw, cred, NULL );
#if defined( SLAPD_CRYPT ) || defined( SLAPD_PASSWD ) #if defined( SLAPD_CRYPT ) || defined( SLAPD_PASSWD )
#ifdef SLAPD_SPASSWD
lutil_passwd_sasl_conn = NULL;
#endif
ldap_pvt_thread_mutex_unlock( &passwd_mutex ); ldap_pvt_thread_mutex_unlock( &passwd_mutex );
#endif #endif

View File

@ -239,6 +239,9 @@ slap_passwd_check(
} }
#if defined( SLAPD_CRYPT ) || defined( SLAPD_PASSWD ) #if defined( SLAPD_CRYPT ) || defined( SLAPD_PASSWD )
#ifdef SLAPD_SPASSWD
lutil_passwd_sasl_conn = NULL;
#endif
ldap_pvt_thread_mutex_unlock( &passwd_mutex ); ldap_pvt_thread_mutex_unlock( &passwd_mutex );
#endif #endif

View File

@ -151,7 +151,8 @@ LDAP_SLAPD_F (BackendDB *) select_backend LDAP_P(( const char * dn ));
LDAP_SLAPD_F (int) be_issuffix LDAP_P(( Backend *be, const char *suffix )); LDAP_SLAPD_F (int) be_issuffix LDAP_P(( Backend *be, const char *suffix ));
LDAP_SLAPD_F (int) be_isroot LDAP_P(( Backend *be, const char *ndn )); LDAP_SLAPD_F (int) be_isroot LDAP_P(( Backend *be, const char *ndn ));
LDAP_SLAPD_F (int) be_isroot_pw LDAP_P(( Backend *be, const char *ndn, struct berval *cred )); LDAP_SLAPD_F (int) be_isroot_pw LDAP_P(( Backend *be,
Connection *conn, const char *ndn, struct berval *cred ));
LDAP_SLAPD_F (char *) be_root_dn LDAP_P(( Backend *be )); LDAP_SLAPD_F (char *) be_root_dn LDAP_P(( Backend *be ));
LDAP_SLAPD_F (int) be_entry_release_rw LDAP_P(( Backend *be, Entry *e, int rw )); LDAP_SLAPD_F (int) be_entry_release_rw LDAP_P(( Backend *be, Entry *e, int rw ));
#define be_entry_release_r( be, e ) be_entry_release_rw( be, e, 0 ) #define be_entry_release_r( be, e ) be_entry_release_rw( be, e, 0 )