From e9ef19dfebcad16bb1268b36c1f07c9882cc7341 Mon Sep 17 00:00:00 2001
From: floblanc <floblanc@localhost>
Date: Fri, 31 Oct 2008 10:45:08 +0000
Subject: [PATCH] The network group defines resource limits for maximum search size and maximum search time. These limits also exist at the directory server level.

---
 opendj-sdk/opends/src/server/org/opends/server/api/ClientConnection.java              |   16 ++++++++++++++--
 opendj-sdk/opends/src/server/org/opends/server/core/networkgroups/ResourceLimits.java |    4 ++--
 opendj-sdk/opends/src/server/org/opends/server/core/networkgroups/NetworkGroup.java   |    4 ++--
 3 files changed, 18 insertions(+), 6 deletions(-)

diff --git a/opendj-sdk/opends/src/server/org/opends/server/api/ClientConnection.java b/opendj-sdk/opends/src/server/org/opends/server/api/ClientConnection.java
index 8e4acc4..a9f8b5a 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/api/ClientConnection.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/api/ClientConnection.java
@@ -1102,8 +1102,14 @@
   public void setUnauthenticated()
   {
     setAuthenticationInfo(new AuthenticationInfo());
-    this.sizeLimit          = DirectoryServer.getSizeLimit();
-    this.timeLimit          = DirectoryServer.getTimeLimit();
+    this.sizeLimit = networkGroup.getSearchSizeLimit();
+    if (this.sizeLimit == -1) {
+        this.sizeLimit = DirectoryServer.getSizeLimit();
+    }
+    this.timeLimit = networkGroup.getSearchDurationLimit();
+    if (this.timeLimit == -1) {
+      this.timeLimit = DirectoryServer.getTimeLimit();
+    }
   }
 
 
@@ -1796,7 +1802,13 @@
 
       // The client connection inherits the resource limits
       sizeLimit = networkGroup.getSearchSizeLimit();
+      if (sizeLimit == -1) {
+        sizeLimit = DirectoryServer.getSizeLimit();
+      }
       timeLimit = networkGroup.getSearchDurationLimit();
+      if (timeLimit == -1) {
+        timeLimit = DirectoryServer.getTimeLimit();
+      }
     }
   }
 
diff --git a/opendj-sdk/opends/src/server/org/opends/server/core/networkgroups/NetworkGroup.java b/opendj-sdk/opends/src/server/org/opends/server/core/networkgroups/NetworkGroup.java
index 3c4f11c..1ed8c0e 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/core/networkgroups/NetworkGroup.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/core/networkgroups/NetworkGroup.java
@@ -681,7 +681,7 @@
     if (resourceLimits != null) {
       return resourceLimits.getSizeLimit();
     }
-    return 0;
+    return -1;
   }
 
   /**
@@ -693,7 +693,7 @@
     if (resourceLimits != null) {
       return resourceLimits.getTimeLimit();
     }
-    return 0;
+    return -1;
   }
 
   /**
diff --git a/opendj-sdk/opends/src/server/org/opends/server/core/networkgroups/ResourceLimits.java b/opendj-sdk/opends/src/server/org/opends/server/core/networkgroups/ResourceLimits.java
index 6ed1ed7..e34dfd5 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/core/networkgroups/ResourceLimits.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/core/networkgroups/ResourceLimits.java
@@ -108,8 +108,8 @@
     maxOpsPerConnection = 0;
     maxConcurrentOpsPerConnection = 0;
 
-    searchSizeLimit = 0;
-    searchTimeLimit = 0;
+    searchSizeLimit = -1;
+    searchTimeLimit = -1;
     minSearchSubstringLength = 0;
     numConnections = 0;
     connectionsPerIpMap = new HashMap<String, Integer>();

--
Gitblit v1.10.0