diff --git a/CHANGES b/CHANGES index b05b85f0a5978b10cb1011d9e1b6861ef3245073..3a9e211cbd84b544296217b776d2aaffaef6b08f 100644 --- a/CHANGES +++ b/CHANGES @@ -11,6 +11,7 @@ OpenLDAP 2.4.24 Engineering Fixed slapd-bdb entry cache delete failure (ITS#6577) Fixed slapd-ndb to honor rootpw setting (ITS#6661) Fixed slapd-meta anon retry with failed auth method (ITS#6643) + Fixed slapd-meta rebind proc (ITS#6665) Fixed slapd-null back-config support (ITS#6624) Fixed slapo-pcache callback freeing (ITS#6640) Fixed slapo-pcache to ignore undefined attrs (ITS#6600) diff --git a/servers/slapd/back-meta/search.c b/servers/slapd/back-meta/search.c index 38271b86752063dbc552b626008905aa6b0956d1..00000313cdebf76498c3a8fe185468b568bd2205 100644 --- a/servers/slapd/back-meta/search.c +++ b/servers/slapd/back-meta/search.c @@ -378,6 +378,7 @@ meta_search_dobind_result( LDAPMessage *res ) { metainfo_t *mi = ( metainfo_t * )op->o_bd->be_private; + metatarget_t *mt = mi->mi_targets[ candidate ]; metaconn_t *mc = *mcp; metasingleconn_t *msc = &mc->mc_conns[ candidate ]; @@ -418,6 +419,12 @@ meta_search_dobind_result( LDAP_BACK_CONN_ISANON_SET( msc ); } else { + if ( META_BACK_TGT_SAVECRED( mt ) && + !BER_BVISNULL( &msc->msc_cred ) && + !BER_BVISEMPTY( &msc->msc_cred ) ) + { + ldap_set_rebind_proc( msc->msc_ld, mt->mt_rebind_f, msc ); + } LDAP_BACK_CONN_ISBOUND_SET( msc ); } retcode = META_SEARCH_CANDIDATE;