static int
asyncmeta_back_new_target(
a_metatarget_t **mtp,
- a_metainfo_t *mi )
+ a_metainfo_t *mi,
+ BackendDB *db )
{
a_metatarget_t *mt;
mt->mt_idassert_flags = LDAP_BACK_AUTH_PRESCRIPTIVE;
*mtp = mt;
-
+ if ( !SLAP_DBOPEN(db) || !(slapMode & SLAP_SERVER_MODE)) {
+ return 0;
+ }
for ( i = 0; i < mi->mi_num_conns; i++ ) {
a_metaconn_t *mc = &mi->mi_conns[i];
mc->mc_conns = ch_realloc( mc->mc_conns, sizeof( a_metasingleconn_t ) * mi->mi_ntargets);
return 1;
}
- if ( asyncmeta_back_new_target( &mi->mi_targets[ i ], mi ) != 0 ) {
+ if ( asyncmeta_back_new_target( &mi->mi_targets[ i ], mi, c->be ) != 0 ) {
snprintf( c->cr_msg, sizeof( c->cr_msg ),
"unable to init server"
" in \"%s <protocol>://<server>[:port]/<naming context>\"",
ber_dupbv ( &mi->mi_suffix, &be->be_suffix[0] );
- if ( mi->mi_ntargets > 0 ) {
+ if ( ( slapMode & SLAP_SERVER_MODE ) && mi->mi_ntargets > 0 ) {
ldap_pvt_thread_mutex_lock( &slapd_rq.rq_mutex );
mi->mi_task = ldap_pvt_runqueue_insert( &slapd_rq, 1,
asyncmeta_timeout_loop, mi, "asyncmeta_timeout_loop", mi->mi_suffix.bv_val );