]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/back-monitor/search.c
Ditch LRU cache replacement in favor of 2nd-chance/clock.
[openldap] / servers / slapd / back-monitor / search.c
index 3f30f489b5a5239e8017deb26f8a47d759ed1b9c..a444086d2fd76faa20d03df159becef745e40773 100644 (file)
@@ -35,8 +35,7 @@ monitor_send_children(
        Operation       *op,
        SlapReply       *rs,
        Entry           *e_parent,
-       int             sub
-)
+       int             sub )
 {
        monitor_info_t  *mi = ( monitor_info_t * )op->o_bd->be_private;
        Entry                   *e,
@@ -228,7 +227,9 @@ monitor_back_search( Operation *op, SlapReply *rs )
                break;
 
        case LDAP_SCOPE_ONELEVEL:
-               rc = monitor_send_children( op, rs, e, 0 );
+       case LDAP_SCOPE_SUBORDINATE:
+               rc = monitor_send_children( op, rs, e,
+                       op->oq_search.rs_scope == LDAP_SCOPE_SUBORDINATE );
                break;
 
        case LDAP_SCOPE_SUBTREE:
@@ -243,6 +244,10 @@ monitor_back_search( Operation *op, SlapReply *rs )
 
                rc = monitor_send_children( op, rs, e, 1 );
                break;
+
+       default:
+               rc = LDAP_UNWILLING_TO_PERFORM;
+               monitor_cache_release( mi, e );
        }
 
        rs->sr_attrs = NULL;