]> git.ipfire.org Git - thirdparty/openldap.git/commitdiff
ITS#10363 Removed unused arguments and unused code in asyncmeta_getconn and asyncmeta...
authorNadezhda Ivanova <nivanova@symas.com>
Tue, 24 Jun 2025 13:39:43 +0000 (16:39 +0300)
committerQuanah Gibson-Mount <quanah@openldap.org>
Thu, 31 Jul 2025 19:01:56 +0000 (19:01 +0000)
servers/slapd/back-asyncmeta/add.c
servers/slapd/back-asyncmeta/back-asyncmeta.h
servers/slapd/back-asyncmeta/bind.c
servers/slapd/back-asyncmeta/compare.c
servers/slapd/back-asyncmeta/conn.c
servers/slapd/back-asyncmeta/delete.c
servers/slapd/back-asyncmeta/init.c
servers/slapd/back-asyncmeta/meta_result.c
servers/slapd/back-asyncmeta/modify.c
servers/slapd/back-asyncmeta/modrdn.c
servers/slapd/back-asyncmeta/search.c

index a90322ccb0fcee4b0bf3b20455c92692f5dd9dc5..dfe7dca941c329b7d3bb37b69ec4e01ffc957eac 100644 (file)
@@ -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;
index 9ebdd8ffbf15c04b784bdef7ea9b4960aa8ffe62..03f8eb1d8c4ce1f0712c1b839c0261b81d19c44d 100644 (file)
@@ -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 );
index feebf44780ae38aa709ea1d863281e653d56208b..371d08f47edcd6ee616b8204fa226da2e6e24b94 100644 (file)
@@ -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__);
index f649433091746b9e48b2b14287e376dd64d333e6..d6fb2924e04499ad4a362af1f16fdb5abb2cd5b4 100644 (file)
@@ -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;
index fd04d70666506f685036c041f4b35b5ae4770594..1bfb674b78bd00d6beec2ab1f4d0d9d086428de5 100644 (file)
@@ -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 ) {
index 63bd39c5a05b3f0577e30b417a1932f4a8516643..6b7ab8f6be64d426c40259d167273ad7b2b5c1f1 100644 (file)
@@ -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;
index f4cfdad40749313976fa82ddb156d821496c9a43..fc3e3f036afa2dcc10a65a97c7ee2e47086cb105 100644 (file)
@@ -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 )
index fd5b52f41ad26af889981846a0a1ace007b82bcc..32b64d0eb5c8fd3fb85669181e7ac572da18ce5b 100644 (file)
@@ -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__);
                                }
                        }
                }
index bfa9a6adaf5c5defbb79055eed825d2e09ecbf09..f06f3a3a95f4c722389864d028f505dda79a361e 100644 (file)
@@ -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;
index 3bbcf78aa6397f7d0889fb47fccb3dab7da86192..b68053eac4fb2d92e16561162a2328f38a6d542c 100644 (file)
@@ -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;
index bf91056f02a9793883135b0f1097ae7696c87e26..f7b36bc0d2ecc7a6d1abbc4a1c64d4213968205b 100644 (file)
@@ -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;