]> git.sur5r.net Git - openldap/commitdiff
defer thread key retrieve as it might not be needed
authorPierangelo Masarati <ando@openldap.org>
Thu, 16 Aug 2007 10:05:21 +0000 (10:05 +0000)
committerPierangelo Masarati <ando@openldap.org>
Thu, 16 Aug 2007 10:05:21 +0000 (10:05 +0000)
servers/slapd/back-meta/bind.c
servers/slapd/back-meta/search.c

index 252e7264416ffec42d7f40ed9086ee6745b70523..c1c02496e81e7b99a40b8fc3c67c1daaa9251717 100644 (file)
@@ -64,7 +64,7 @@ meta_back_bind( Operation *op, SlapReply *rs )
                        gotit = 0,
                        isroot = 0;
 
-       SlapReply       *candidates = meta_back_candidates_get( op );
+       SlapReply       *candidates;
 
        rs->sr_err = LDAP_SUCCESS;
 
@@ -122,6 +122,8 @@ meta_back_bind( Operation *op, SlapReply *rs )
                return rs->sr_err;
        }
 
+       candidates = meta_back_candidates_get( op );
+
        /*
         * Each target is scanned ...
         */
@@ -324,6 +326,9 @@ meta_back_bind_op_result(
                ">>> %s meta_back_bind_op_result[%d]\n",
                op->o_log_prefix, candidate, 0 );
 
+       /* make sure this is clean */
+       assert( rs->sr_ctrls == NULL );
+
        if ( rs->sr_err == LDAP_SUCCESS ) {
                time_t          stoptime = (time_t)(-1),
                                timeout;
@@ -634,7 +639,7 @@ meta_back_dobind(
                                i,
                                isroot = 0;
 
-       SlapReply               *candidates = meta_back_candidates_get( op );
+       SlapReply               *candidates;
 
        if ( be_isroot( op ) ) {
                isroot = 1;
@@ -654,6 +659,8 @@ meta_back_dobind(
                goto done;
        }
 
+       candidates = meta_back_candidates_get( op );
+
        for ( i = 0; i < mi->mi_ntargets; i++ ) {
                metatarget_t            *mt = mi->mi_targets[ i ];
                metasingleconn_t        *msc = &mc->mc_conns[ i ];
index dc597519758ba0ff205ec08f1cc3cd54083fb2c8..713a87676147336803a2ebe6c2130c591af0b63a 100644 (file)
@@ -680,7 +680,7 @@ meta_back_search( Operation *op, SlapReply *rs )
        dncookie        dc;
        int             is_ok = 0;
        void            *savepriv;
-       SlapReply       *candidates = meta_back_candidates_get( op );
+       SlapReply       *candidates = NULL;
 
        /*
         * controls are set in ldap_back_dobind()
@@ -697,6 +697,7 @@ getconn:;
        dc.conn = op->o_conn;
        dc.rs = rs;
 
+       if ( candidates == NULL ) candidates = meta_back_candidates_get( op );
        /*
         * Inits searches
         */