]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/result.c
Fix typo
[openldap] / servers / slapd / result.c
index 4debc048faa269d99b0229827a2e28369085f064..c3e3861590b8ac4e02d05487795e89fe5939d0dd 100644 (file)
@@ -239,7 +239,7 @@ send_ldap_controls( Operation *o, BerElement *ber, LDAPControl **c )
                if( rc == -1 ) return rc;
        }
 
-#ifdef SLAP_SORTED_RESULTS
+#ifdef SLAP_CONTROL_X_SORTEDRESULTS
        /* this is a hack to avoid having to modify op->s_ctrls */
        if( o->o_sortedresults ) {
                BerElementBuffer berbuf;
@@ -562,7 +562,7 @@ send_ldap_disconnect( Operation     *op, SlapReply *rs )
        } else {
                rs->sr_rspoid = LDAP_NOTICE_DISCONNECT;
                rs->sr_tag = LDAP_RES_EXTENDED;
-               rs->sr_msgid = 0;
+               rs->sr_msgid = LDAP_RES_UNSOLICITED;
        }
 
        if ( send_ldap_response( op, rs ) == SLAP_CB_CONTINUE ) {
@@ -743,6 +743,13 @@ slap_send_search_entry( Operation *op, SlapReply *rs )
                return LDAP_SIZELIMIT_EXCEEDED;
        }
 
+       /* Every 64 entries, check for thread pool pause */
+       if (( rs->sr_nentries & 0x3f == 0x3f ) &&
+               ldap_pvt_thread_pool_query( &connection_pool,
+                       LDAP_PVT_THREAD_POOL_PARAM_PAUSING, &i ) == 0 && i ) {
+               return LDAP_BUSY;
+       }
+
        rs->sr_type = REP_SEARCH;
 
        /* eventually will loop through generated operational attribute types