]> git.sur5r.net Git - openldap/commitdiff
ITS#8725 connection fixes
authorHoward Chu <hyc@openldap.org>
Thu, 19 Jan 2017 20:10:38 +0000 (20:10 +0000)
committerHoward Chu <hyc@openldap.org>
Fri, 8 Sep 2017 16:39:14 +0000 (17:39 +0100)
Fix op_finish, must resched connection to pick up pending ops.
Fix op completion counter.

servers/slapd/connection.c

index 4d464b0b45f061f909d0911949b581155c736425..b73a9a534617af6fcbff89e45c5e36743e1a6c97 100644 (file)
@@ -1045,6 +1045,10 @@ connection_op_finish( Operation *op )
 {
        Connection *conn = op->o_conn;
        void *memctx_null = NULL;
+       slap_op_t opidx = slap_req2op( op->o_tag );
+       assert( opidx != SLAP_OP_LAST );
+
+       INCR_OP_COMPLETED( opidx );
 
        ldap_pvt_thread_mutex_lock( &conn->c_mutex );
 
@@ -1057,6 +1061,7 @@ connection_op_finish( Operation *op )
        LDAP_STAILQ_NEXT(op, o_next) = NULL;
        conn->c_n_ops_executing--;
        conn->c_n_ops_completed++;
+       connection_resched( conn );
        ldap_pvt_thread_mutex_unlock( &conn->c_mutex );
 }