Home | History | Annotate | Download | only in back-asyncmeta

Lines Matching refs:mi

117 	a_metainfo_t	*mi;
128 mi = ch_calloc( 1, sizeof( a_metainfo_t ) );
129 if ( mi == NULL ) {
134 mi->mi_flags =
144 mi->mi_defaulttarget = META_DEFAULT_TARGET_NONE;
145 mi->mi_bind_timeout.tv_sec = 0;
146 mi->mi_bind_timeout.tv_usec = META_BIND_TIMEOUT;
148 mi->mi_rebind_f = asyncmeta_back_default_rebind;
149 mi->mi_urllist_f = asyncmeta_back_default_urllist;
151 ldap_pvt_thread_mutex_init( &mi->mi_cache.mutex );
154 mi->mi_nretries = META_RETRY_DEFAULT;
155 mi->mi_version = LDAP_VERSION3;
158 mi->mi_timeout[ i ] = META_BACK_CFG_DEFAULT_OPS_TIMEOUT;
162 mi->mi_conn_priv[ i ].mic_num = 0;
163 LDAP_TAILQ_INIT( &mi->mi_conn_priv[ i ].mic_priv );
165 mi->mi_conn_priv_max = LDAP_BACK_CONN_PRIV_DEFAULT;
167 mi->mi_ldap_extra = (ldap_extra_t *)bi->bi_extra;
168 ldap_pvt_thread_mutex_init( &mi->mi_mc_mutex);
170 be->be_private = mi;
178 a_metainfo_t *mi,
214 mi->mi_flags &= ~META_BACK_F_PROXYAUTHZ_ALWAYS;
228 mi->mi_flags &= ~META_BACK_F_PROXYAUTHZ_ANON;
233 mi->mi_flags &= ~META_BACK_F_PROXYAUTHZ_NOANON;
244 a_metainfo_t *mi = (a_metainfo_t *)be->be_private;
248 mi->mi_disabled = 0;
249 if ( mi->mi_ntargets == 0 ) {
255 for ( i = 0; i < mi->mi_ntargets; i++ ) {
256 a_metatarget_t *mt = mi->mi_targets[ i ];
257 if ( asyncmeta_target_finish( mi, mt,
263 if ( mi->mi_conns == NULL ) {
264 mi->mi_num_conns = (mi->mi_max_target_conns == 0) ? META_BACK_CFG_MAX_TARGET_CONNS : mi->mi_max_target_conns;
265 assert(mi->mi_num_conns > 0);
266 mi->mi_conns = ch_calloc( mi->mi_num_conns, sizeof( a_metaconn_t ));
267 for (i = 0; i < mi->mi_num_conns; i++) {
268 a_metaconn_t *mc = &mi->mi_conns[i];
272 if ( mi->mi_ntargets > 0 ) {
273 mc->mc_conns = ch_calloc( mi->mi_ntargets, sizeof( a_metasingleconn_t ));
278 mc->mc_info = mi;
283 ber_dupbv ( &mi->mi_suffix, &be->be_suffix[0] );
285 if ( ( slapMode & SLAP_SERVER_MODE ) && mi->mi_ntargets > 0 ) {
287 mi->mi_task = ldap_pvt_runqueue_insert( &slapd_rq, 1,
288 asyncmeta_timeout_loop, mi, "asyncmeta_timeout_loop", mi->mi_suffix.bv_val );
313 asyncmeta_back_clear_miconns( a_metainfo_t *mi )
317 if ( mi->mi_conns != NULL ) {
318 for (i = 0; i < mi->mi_num_conns; i++) {
319 mc = &mi->mi_conns[i];
320 for (j = 0; j < mi->mi_ntargets; j ++) {
328 free(mi->mi_conns);
330 mi->mi_conns = NULL;
331 mi->mi_num_conns = 0;
397 a_metainfo_t *mi;
400 mi = ( a_metainfo_t * )be->be_private;
401 mi->mi_disabled = 1;
404 if ( asyncmeta_db_has_pending_ops( mi ) == 0 ) {
405 ldap_pvt_thread_mutex_lock( &mi->mi_mc_mutex );
406 asyncmeta_back_clear_miconns(mi);
407 ldap_pvt_thread_mutex_unlock( &mi->mi_mc_mutex );
408 if ( mi->mi_task != NULL ) {
410 if ( ldap_pvt_runqueue_isrunning( &slapd_rq, mi->mi_task )) {
411 ldap_pvt_runqueue_stoptask( &slapd_rq, mi->mi_task);
414 mi->mi_task = NULL;
426 a_metainfo_t *mi;
431 mi = ( a_metainfo_t * )be->be_private;
436 if ( mi->mi_targets != NULL ) {
437 for ( i = 0; i < mi->mi_ntargets; i++ ) {
438 a_metatarget_t *mt = mi->mi_targets[ i ];
441 if ( mt->mt_quarantine.ri_num != mi->mi_quarantine.ri_num )
443 mi->mi_ldap_extra->retry_info_destroy( &mt->mt_quarantine );
452 free( mi->mi_targets );
455 ldap_pvt_thread_mutex_lock( &mi->mi_cache.mutex );
456 if ( mi->mi_cache.tree ) {
457 ldap_avl_free( mi->mi_cache.tree, asyncmeta_dncache_free );
460 ldap_pvt_thread_mutex_unlock( &mi->mi_cache.mutex );
461 ldap_pvt_thread_mutex_destroy( &mi->mi_cache.mutex );
463 if ( mi->mi_candidates != NULL ) {
464 ber_memfree_x( mi->mi_candidates, NULL );
467 if ( META_BACK_QUARANTINE( mi ) ) {
468 mi->mi_ldap_extra->retry_info_destroy( &mi->mi_quarantine );
471 ldap_pvt_thread_mutex_lock( &mi->mi_mc_mutex );
472 asyncmeta_back_clear_miconns(mi);
473 ldap_pvt_thread_mutex_unlock( &mi->mi_mc_mutex );
474 ldap_pvt_thread_mutex_destroy( &mi->mi_mc_mutex );