From: Nadezhda Ivanova Date: Tue, 24 Jun 2025 13:39:43 +0000 (+0300) Subject: ITS#10363 Removed unused arguments and unused code in asyncmeta_getconn and asyncmeta... X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d1848e54aec522bd4f56be29676f4803a24016d4;p=thirdparty%2Fopenldap.git ITS#10363 Removed unused arguments and unused code in asyncmeta_getconn and asyncmeta_clear_one_msc --- diff --git a/servers/slapd/back-asyncmeta/add.c b/servers/slapd/back-asyncmeta/add.c index a90322ccb0..dfe7dca941 100644 --- a/servers/slapd/back-asyncmeta/add.c +++ b/servers/slapd/back-asyncmeta/add.c @@ -271,7 +271,7 @@ asyncmeta_back_add( Operation *op, SlapReply *rs ) } candidates = bc->candidates; - mc = asyncmeta_getconn( op, rs, candidates, &candidate, LDAP_BACK_DONTSEND, 0); + mc = asyncmeta_getconn( op, rs, candidates, &candidate, 0); if ( !mc || rs->sr_err != LDAP_SUCCESS) { send_ldap_result(op, rs); return rs->sr_err; diff --git a/servers/slapd/back-asyncmeta/back-asyncmeta.h b/servers/slapd/back-asyncmeta/back-asyncmeta.h index 9ebdd8ffbf..03f8eb1d8c 100644 --- a/servers/slapd/back-asyncmeta/back-asyncmeta.h +++ b/servers/slapd/back-asyncmeta/back-asyncmeta.h @@ -482,7 +482,6 @@ asyncmeta_getconn( SlapReply *rs, SlapReply *candidates, int *candidate, - ldap_back_send_t sendok, int alloc_new); @@ -493,7 +492,6 @@ asyncmeta_init_one_conn( a_metaconn_t *mc, int candidate, int ispriv, - ldap_back_send_t sendok, int dolock ); extern void @@ -633,11 +631,9 @@ int asyncmeta_back_cleanup( Operation *op, SlapReply *rs, bm_context_t *bm ); int asyncmeta_clear_one_msc( - Operation *op, - a_metaconn_t *msc, - int candidate, - int unbind, - const char * caller); + a_metatarget_t *mt, + a_metasingleconn_t *msc, + const char *caller); a_metaconn_t * asyncmeta_get_next_mc( a_metainfo_t *mi ); diff --git a/servers/slapd/back-asyncmeta/bind.c b/servers/slapd/back-asyncmeta/bind.c index feebf44780..371d08f47e 100644 --- a/servers/slapd/back-asyncmeta/bind.c +++ b/servers/slapd/back-asyncmeta/bind.c @@ -104,7 +104,7 @@ asyncmeta_back_bind( Operation *op, SlapReply *rs ) /* we need asyncmeta_getconn() not send result even on error, * because we want to intercept the error and make it * invalidCredentials */ - mc = asyncmeta_getconn( op, rs, candidates, NULL, LDAP_BACK_BIND_DONTSEND, 1 ); + mc = asyncmeta_getconn( op, rs, candidates, NULL, 1 ); if ( !mc ) { Debug(LDAP_DEBUG_ANY, "%s asyncmeta_back_bind: no target " "for dn \"%s\" (%d%s%s).\n", @@ -1489,7 +1489,7 @@ asyncmeta_dobind_init(Operation *op, SlapReply *rs, bm_context_t *bc, a_metaconn op->o_log_prefix, candidate, (void *)mc ); rc = asyncmeta_init_one_conn( op, rs, mc, candidate, - LDAP_BACK_CONN_ISPRIV( mc ), LDAP_BACK_DONTSEND, 0 ); + LDAP_BACK_CONN_ISPRIV( mc ), 0 ); switch ( rc ) { case LDAP_SUCCESS: @@ -1698,7 +1698,7 @@ asyncmeta_dobind_init_with_retry(Operation *op, SlapReply *rs, bm_context_t *bc, asyncmeta_reset_msc(NULL, mc, candidate, 0, buf); rc = asyncmeta_init_one_conn( op, rs, mc, candidate, - LDAP_BACK_CONN_ISPRIV( mc ), LDAP_BACK_DONTSEND, 0 ); + LDAP_BACK_CONN_ISPRIV( mc ), 0 ); ldap_pvt_thread_mutex_unlock( &mc->mc_om_mutex ); } @@ -1740,7 +1740,7 @@ retry_dobind: asyncmeta_reset_msc(NULL, mc, candidate, 0, __FUNCTION__); rc = asyncmeta_init_one_conn( op, rs, mc, candidate, - LDAP_BACK_CONN_ISPRIV( mc ), LDAP_BACK_DONTSEND, 0 ); + LDAP_BACK_CONN_ISPRIV( mc ), 0 ); if (rs->sr_err != LDAP_SUCCESS) { asyncmeta_reset_msc(NULL, mc, candidate, 0, __FUNCTION__); diff --git a/servers/slapd/back-asyncmeta/compare.c b/servers/slapd/back-asyncmeta/compare.c index f649433091..d6fb2924e0 100644 --- a/servers/slapd/back-asyncmeta/compare.c +++ b/servers/slapd/back-asyncmeta/compare.c @@ -213,7 +213,7 @@ asyncmeta_back_compare( Operation *op, SlapReply *rs ) } candidates = bc->candidates; - mc = asyncmeta_getconn( op, rs, candidates, &candidate, LDAP_BACK_DONTSEND, 0); + mc = asyncmeta_getconn( op, rs, candidates, &candidate, 0); if ( !mc || rs->sr_err != LDAP_SUCCESS) { send_ldap_result(op, rs); return rs->sr_err; diff --git a/servers/slapd/back-asyncmeta/conn.c b/servers/slapd/back-asyncmeta/conn.c index fd04d70666..1bfb674b78 100644 --- a/servers/slapd/back-asyncmeta/conn.c +++ b/servers/slapd/back-asyncmeta/conn.c @@ -71,7 +71,6 @@ asyncmeta_init_one_conn( a_metaconn_t *mc, int candidate, int ispriv, - ldap_back_send_t sendok, int dolock) { a_metainfo_t *mi = mc->mc_info; @@ -80,7 +79,6 @@ asyncmeta_init_one_conn( int version; a_dncookie dc; int isauthz = ( candidate == mc->mc_authz_target ); - int do_return = 0; #ifdef HAVE_TLS int is_ldaps = 0; int do_start_tls = 0; @@ -119,9 +117,6 @@ asyncmeta_init_one_conn( rs->sr_text = "Target is quarantined"; Debug( LDAP_DEBUG_ANY, "%s asyncmeta_init_one_conn: Target is quarantined\n", op->o_log_prefix ); - if ( op->o_conn && ( sendok & LDAP_BACK_SENDERR ) ) { - send_ldap_result( op, rs ); - } return rs->sr_err; } } @@ -134,18 +129,18 @@ asyncmeta_init_one_conn( { assert( msc->msc_ld != NULL ); rs->sr_err = LDAP_SUCCESS; - do_return = 1; + return rs->sr_err; } else if ( META_BACK_CONN_CREATING( msc ) || LDAP_BACK_CONN_BINDING( msc ) ) { rs->sr_err = LDAP_SUCCESS; - do_return = 1; + return rs->sr_err; } else if ( META_BACK_CONN_INITED( msc ) ) { assert( msc->msc_ld != NULL ); rs->sr_err = LDAP_SUCCESS; - do_return = 1; + return rs->sr_err; } else { /* @@ -154,17 +149,6 @@ asyncmeta_init_one_conn( META_BACK_CONN_CREATING_SET( msc ); } - if ( do_return ) { - if ( rs->sr_err != LDAP_SUCCESS - && op->o_conn - && ( sendok & LDAP_BACK_SENDERR ) ) - { - send_ldap_result( op, rs ); - } - - return rs->sr_err; - } - assert( msc->msc_ld == NULL ); /* @@ -358,7 +342,7 @@ retry:; #endif /* DEBUG_205 */ /* need to trash a failed Start TLS */ - asyncmeta_clear_one_msc( op, mc, candidate, 1, __FUNCTION__ ); + asyncmeta_clear_one_msc( mt, msc, __FUNCTION__ ); goto error_return; } } @@ -439,9 +423,6 @@ error_return:; if ( rs->sr_err != LDAP_SUCCESS ) { rs->sr_err = slap_map_api2result( rs ); - if ( sendok & LDAP_BACK_SENDERR ) { - send_ldap_result( op, rs ); - } } return rs->sr_err; } @@ -516,7 +497,6 @@ asyncmeta_getconn( SlapReply *rs, SlapReply *candidates, int *candidate, - ldap_back_send_t sendok, int alloc_new) { a_metainfo_t *mi = ( a_metainfo_t * )op->o_bd->be_private; @@ -632,9 +612,9 @@ asyncmeta_getconn( */ candidates[ i ].sr_err = asyncmeta_init_one_conn( op, rs, mc, i, LDAP_BACK_CONN_ISPRIV( &mc_curr ), - LDAP_BACK_DONTSEND, !new_conn ); + !new_conn ); if ( candidates[ i ].sr_err == LDAP_SUCCESS ) { - if ( new_conn && ( sendok & LDAP_BACK_BINDING ) ) { + if ( new_conn ) { LDAP_BACK_CONN_BINDING_SET( &mc->mc_conns[ i ] ); } META_CANDIDATE_SET( &candidates[ i ] ); @@ -657,13 +637,6 @@ asyncmeta_getconn( rs->sr_err = LDAP_NO_SUCH_OBJECT; rs->sr_text = "Unable to select valid candidates"; - if ( sendok & LDAP_BACK_SENDERR ) { - if ( rs->sr_err == LDAP_NO_SUCH_OBJECT ) { - rs->sr_matched = mi->mi_suffix.bv_val; - } - send_ldap_result( op, rs ); - rs->sr_matched = NULL; - } ldap_pvt_thread_mutex_unlock(&mc->mc_om_mutex); if ( alloc_new > 0) { asyncmeta_back_conn_free( mc ); @@ -700,13 +673,6 @@ asyncmeta_getconn( } if ( i < 0 || rs->sr_err != LDAP_SUCCESS ) { - if ( sendok & LDAP_BACK_SENDERR ) { - if ( rs->sr_err == LDAP_NO_SUCH_OBJECT ) { - rs->sr_matched = mi->mi_suffix.bv_val; - } - send_ldap_result( op, rs ); - rs->sr_matched = NULL; - } ldap_pvt_thread_mutex_unlock(&mc->mc_om_mutex); if ( mc != NULL && alloc_new ) { asyncmeta_back_conn_free( mc ); @@ -719,9 +685,6 @@ asyncmeta_getconn( { rs->sr_err = LDAP_UNWILLING_TO_PERFORM; rs->sr_text = "Cross-target rename not supported"; - if ( sendok & LDAP_BACK_SENDERR ) { - send_ldap_result( op, rs ); - } ldap_pvt_thread_mutex_unlock(&mc->mc_om_mutex); if ( mc != NULL && alloc_new > 0 ) { asyncmeta_back_conn_free( mc ); @@ -750,7 +713,7 @@ asyncmeta_getconn( * sends the appropriate result. */ err = asyncmeta_init_one_conn( op, rs, mc, i, - LDAP_BACK_CONN_ISPRIV( &mc_curr ), sendok, !new_conn ); + LDAP_BACK_CONN_ISPRIV( &mc_curr ), !new_conn ); if ( err != LDAP_SUCCESS ) { /* * FIXME: in case one target cannot @@ -800,7 +763,7 @@ asyncmeta_getconn( */ int lerr = asyncmeta_init_one_conn( op, rs, mc, i, LDAP_BACK_CONN_ISPRIV( &mc_curr ), - LDAP_BACK_DONTSEND, !new_conn ); + !new_conn ); candidates[ i ].sr_err = lerr; if ( lerr == LDAP_SUCCESS ) { META_CANDIDATE_SET( &candidates[ i ] ); @@ -836,9 +799,6 @@ asyncmeta_getconn( } if ( META_BACK_ONERR_STOP( mi ) ) { - if ( sendok & LDAP_BACK_SENDERR ) { - send_ldap_result( op, rs ); - } ldap_pvt_thread_mutex_unlock(&mc->mc_om_mutex); if ( alloc_new > 0 ) { asyncmeta_back_conn_free( mc ); @@ -859,13 +819,6 @@ asyncmeta_getconn( rs->sr_text = "Unable to select valid candidates"; } - if ( sendok & LDAP_BACK_SENDERR ) { - if ( rs->sr_err == LDAP_NO_SUCH_OBJECT ) { - rs->sr_matched = mi->mi_suffix.bv_val; - } - send_ldap_result( op, rs ); - rs->sr_matched = NULL; - } if ( alloc_new > 0 ) { asyncmeta_back_conn_free( mc ); @@ -902,9 +855,6 @@ done:; rs->sr_err = LDAP_OTHER; rs->sr_text = "Proxy bind collision"; - if ( sendok & LDAP_BACK_SENDERR ) { - send_ldap_result( op, rs ); - } return NULL; } } @@ -1058,24 +1008,26 @@ int asyncmeta_start_one_listener(a_metaconn_t *mc, int asyncmeta_clear_one_msc( - Operation *op, - a_metaconn_t *mc, - int candidate, - int unbind, + a_metatarget_t *mt, + a_metasingleconn_t *msc, const char *caller) { - a_metasingleconn_t *msc; - if (mc == NULL) { + + if (msc == NULL ) { return 0; } - msc = &mc->mc_conns[candidate]; - if ( LogTest( asyncmeta_debug ) ) { - char time_buf[ SLAP_TEXT_BUFLEN ]; - asyncmeta_get_timestamp(time_buf); - Debug( asyncmeta_debug, "[%s] Resetting msc: %p, msc_ld: %p, " - "msc_bound_ndn: %s, msc->conn: %p, %s \n", - time_buf, msc, msc->msc_ld, msc->msc_bound_ndn.bv_val, - msc->conn, caller ? caller : "" ); + + if ( LogTest( asyncmeta_debug ) && !slapd_shutdown ) { + if (( msc->msc_ld != NULL ) || ( msc->conn ) + || !BER_BVISNULL( &msc->msc_bound_ndn ) + || !BER_BVISNULL( &msc->msc_cred ) ) { + char time_buf[ SLAP_TEXT_BUFLEN ]; + asyncmeta_get_timestamp(time_buf); + Debug( asyncmeta_debug, "[%s] Resetting msc: %p, msc_ld: %p, " + "msc_bound_ndn: %s, msc->conn: %p, %s \n", + time_buf, msc, msc->msc_ld, msc->msc_bound_ndn.bv_val, + msc->conn, caller ? caller : "" ); + } } msc->msc_mscflags = 0; if (msc->conn) { @@ -1084,12 +1036,6 @@ asyncmeta_clear_one_msc( } if ( msc->msc_ld != NULL ) { - -#ifdef DEBUG_205 - Debug( LDAP_DEBUG_ANY, "### %s asyncmeta_clear_one_msc ldap_unbind_ext[%d] ld=%p\n", - op ? op->o_log_prefix : "", candidate, (void *)msc->msc_ld ); -#endif /* DEBUG_205 */ - ldap_unbind_ext( msc->msc_ld, NULL, NULL ); msc->msc_ld = NULL; ldap_ld_free( msc->msc_ldr, 0, NULL, NULL ); @@ -1140,7 +1086,7 @@ asyncmeta_reset_msc( } if (msc->msc_active <= 1 && mc->mc_active < 1) { bm_context_t *om; - asyncmeta_clear_one_msc(NULL, mc, candidate, 0, caller); + asyncmeta_clear_one_msc(mc->mc_info->mi_targets[candidate], msc, caller); /* set whatever's in the queue to invalid, so the timeout loop cleans it up, * but do not invalidate the current op*/ LDAP_STAILQ_FOREACH( om, &mc->mc_om_list, bc_next ) { diff --git a/servers/slapd/back-asyncmeta/delete.c b/servers/slapd/back-asyncmeta/delete.c index 63bd39c5a0..6b7ab8f6be 100644 --- a/servers/slapd/back-asyncmeta/delete.c +++ b/servers/slapd/back-asyncmeta/delete.c @@ -205,7 +205,7 @@ asyncmeta_back_delete( Operation *op, SlapReply *rs ) } candidates = bc->candidates; - mc = asyncmeta_getconn( op, rs, candidates, &candidate, LDAP_BACK_DONTSEND, 0); + mc = asyncmeta_getconn( op, rs, candidates, &candidate, 0); if ( !mc || rs->sr_err != LDAP_SUCCESS) { send_ldap_result(op, rs); return rs->sr_err; diff --git a/servers/slapd/back-asyncmeta/init.c b/servers/slapd/back-asyncmeta/init.c index f4cfdad407..fc3e3f036a 100644 --- a/servers/slapd/back-asyncmeta/init.c +++ b/servers/slapd/back-asyncmeta/init.c @@ -318,7 +318,7 @@ asyncmeta_back_clear_miconns( a_metainfo_t *mi ) for (i = 0; i < mi->mi_num_conns; i++) { mc = &mi->mi_conns[i]; for (j = 0; j < mi->mi_ntargets; j ++) { - asyncmeta_clear_one_msc(NULL, mc, j, 1, __FUNCTION__); + asyncmeta_clear_one_msc(NULL, &mc->mc_conns[j], __FUNCTION__); } if ( mc->mc_conns ) diff --git a/servers/slapd/back-asyncmeta/meta_result.c b/servers/slapd/back-asyncmeta/meta_result.c index fd5b52f41a..32b64d0eb5 100644 --- a/servers/slapd/back-asyncmeta/meta_result.c +++ b/servers/slapd/back-asyncmeta/meta_result.c @@ -1393,7 +1393,8 @@ asyncmeta_op_read_error(a_metaconn_t *mc, int candidate, int error, void* ctx) ldap_pvt_thread_mutex_lock( &mc->mc_om_mutex ); /*someone may be trying to write */ if (mc->mc_conns[candidate].msc_active <= 1) { - asyncmeta_clear_one_msc(NULL, mc, candidate, 0, __FUNCTION__); + asyncmeta_clear_one_msc( mc->mc_info->mi_targets[candidate], + &mc->mc_conns[candidate], __FUNCTION__); } else { META_BACK_CONN_INVALID_SET(&mc->mc_conns[candidate]); } @@ -1822,7 +1823,7 @@ void* asyncmeta_timeout_loop(void *ctx, void *arg) } current_time = slap_get_time(); if (msc->msc_ld && msc->msc_time > 0 && msc->msc_time + mi->mi_idle_timeout < current_time) { - asyncmeta_clear_one_msc(NULL, mc, j, 1, __FUNCTION__); + asyncmeta_clear_one_msc(mi->mi_targets[j], msc, __FUNCTION__); } } } diff --git a/servers/slapd/back-asyncmeta/modify.c b/servers/slapd/back-asyncmeta/modify.c index bfa9a6adaf..f06f3a3a95 100644 --- a/servers/slapd/back-asyncmeta/modify.c +++ b/servers/slapd/back-asyncmeta/modify.c @@ -261,7 +261,7 @@ asyncmeta_back_modify( Operation *op, SlapReply *rs ) } candidates = bc->candidates; - mc = asyncmeta_getconn( op, rs, candidates, &candidate, LDAP_BACK_DONTSEND, 0); + mc = asyncmeta_getconn( op, rs, candidates, &candidate, 0); if ( !mc || rs->sr_err != LDAP_SUCCESS) { send_ldap_result(op, rs); return rs->sr_err; diff --git a/servers/slapd/back-asyncmeta/modrdn.c b/servers/slapd/back-asyncmeta/modrdn.c index 3bbcf78aa6..b68053eac4 100644 --- a/servers/slapd/back-asyncmeta/modrdn.c +++ b/servers/slapd/back-asyncmeta/modrdn.c @@ -275,7 +275,7 @@ asyncmeta_back_modrdn( Operation *op, SlapReply *rs ) } candidates = bc->candidates; - mc = asyncmeta_getconn( op, rs, candidates, &candidate, LDAP_BACK_DONTSEND, 0); + mc = asyncmeta_getconn( op, rs, candidates, &candidate, 0); if ( !mc || rs->sr_err != LDAP_SUCCESS) { send_ldap_result(op, rs); return rs->sr_err; diff --git a/servers/slapd/back-asyncmeta/search.c b/servers/slapd/back-asyncmeta/search.c index bf91056f02..f7b36bc0d2 100644 --- a/servers/slapd/back-asyncmeta/search.c +++ b/servers/slapd/back-asyncmeta/search.c @@ -710,7 +710,7 @@ asyncmeta_back_search( Operation *op, SlapReply *rs ) } candidates = bc->candidates; - mc = asyncmeta_getconn( op, rs, candidates, NULL, LDAP_BACK_DONTSEND, 0); + mc = asyncmeta_getconn( op, rs, candidates, NULL, 0); if ( !mc || rs->sr_err != LDAP_SUCCESS) { send_ldap_result(op, rs); return rs->sr_err;