]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/connection.c
Fix prev commit
[openldap] / servers / slapd / connection.c
index 41b2a7232d3ab4f72744764c5a73cf2bce639bf0..0ce75ba9af94e1a4939849a101a03973a1d513a0 100644 (file)
@@ -92,6 +92,8 @@ static ldap_pvt_thread_start_t connection_operation;
  */
 int connections_init(void)
 {
+       int i;
+
        assert( connections == NULL );
 
        if( connections != NULL) {
@@ -126,6 +128,8 @@ int connections_init(void)
        assert( connections[0].c_struct_state == SLAP_C_UNINITIALIZED );
        assert( connections[dtblsize-1].c_struct_state == SLAP_C_UNINITIALIZED );
 
+       for (i=0; i<dtblsize; i++) connections[i].c_conn_idx = i;
+
        /*
         * per entry initialization of the Connection array initialization
         * will be done by connection_init()
@@ -1626,9 +1630,9 @@ connection_input(
                defer = "awaiting write";
        } else if (conn->c_n_ops_executing >= connection_pool_max/2) {
                defer = "too many executing";
-       } else if (conn->c_conn_state == SLAP_C_BINDING ) {
+       } else if (conn->c_conn_state == SLAP_C_BINDING) {
                defer = "binding";
-       } else if (conn->c_n_ops_pending) {
+       } else if (tag != LDAP_REQ_ABANDON && conn->c_n_ops_pending) {
                defer = "pending operations";
        }