From 5f8ac08c1a9c27f4f5ab2d871a109ee206853193 Mon Sep 17 00:00:00 2001
From: abobrov <abobrov@localhost>
Date: Thu, 12 Mar 2009 13:26:30 +0000
Subject: [PATCH] - fix indexed search scoping.

---
 opends/src/server/org/opends/server/backends/ndb/EntryContainer.java |   19 +++++++++++++++----
 1 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/opends/src/server/org/opends/server/backends/ndb/EntryContainer.java b/opends/src/server/org/opends/server/backends/ndb/EntryContainer.java
index 6a04dc8..d197de7 100644
--- a/opends/src/server/org/opends/server/backends/ndb/EntryContainer.java
+++ b/opends/src/server/org/opends/server/backends/ndb/EntryContainer.java
@@ -371,12 +371,23 @@
           // We have found a subordinate entry.
           DN dn = entry.getDN();
 
-          boolean isInScope = true;
+          boolean isInScope = false;
           if (searchScope == SearchScope.SINGLE_LEVEL) {
             // Check if this entry is an immediate child.
-            if ((dn.getNumComponents() !=
-              baseDN.getNumComponents() + 1)) {
-              isInScope = false;
+            if ((dn.getNumComponents() ==
+              baseDN.getNumComponents() + 1) &&
+              dn.isDescendantOf(baseDN)) {
+              isInScope = true;
+            }
+          } else if (searchScope == SearchScope.WHOLE_SUBTREE) {
+            if (dn.isDescendantOf(baseDN)) {
+              isInScope = true;
+            }
+          } else if (searchScope == SearchScope.SUBORDINATE_SUBTREE) {
+            if ((dn.getNumComponents() >
+              baseDN.getNumComponents()) &&
+              dn.isDescendantOf(baseDN)) {
+              isInScope = true;
             }
           }
 

--
Gitblit v1.10.0