From 30f5175327333dcfaaeafb02560697bcdce6166d Mon Sep 17 00:00:00 2001
From: neil_a_wilson <neil_a_wilson@localhost>
Date: Mon, 30 Apr 2007 16:24:15 +0000
Subject: [PATCH] Implement support for the virtual list view (VLV) control as defined in draft-ietf-ldapext-ldapv3-vlv.  This can be used to retrieve a specified page of a search result set.  Any result set that can be used with server-side sorting can also be used with VLV.  The ldapsearch tool has also been updated to support this control.

---
 opends/src/server/org/opends/server/protocols/ldap/LDAPResultCode.java |   33 +++++++++++++++++++++++++++++++++
 1 files changed, 33 insertions(+), 0 deletions(-)

diff --git a/opends/src/server/org/opends/server/protocols/ldap/LDAPResultCode.java b/opends/src/server/org/opends/server/protocols/ldap/LDAPResultCode.java
index 9fc0e0f..114cb18 100644
--- a/opends/src/server/org/opends/server/protocols/ldap/LDAPResultCode.java
+++ b/opends/src/server/org/opends/server/protocols/ldap/LDAPResultCode.java
@@ -287,6 +287,22 @@
 
 
   /**
+   * The LDAP result code for operations that fail because the request included
+   * a VLV request control without a server-side sort control.
+   */
+  public static final int SORT_CONTROL_MISSING = 60;
+
+
+
+  /**
+   * The LDAP result code for operations that fail because the request included
+   * a VLV request control with an invalid offset.
+   */
+  public static final int OFFSET_RANGE_ERROR = 61;
+
+
+
+  /**
    * The LDAP result code for operations that fail due to a naming violation.
    */
   public static final int NAMING_VIOLATION = 64;
@@ -343,6 +359,14 @@
 
 
   /**
+   * The LDAP result code for operations that fail due to an error in
+   * virtual list view processing.
+   */
+  public static final int VIRTUAL_LIST_VIEW_ERROR = 76;
+
+
+
+  /**
    * The LDAP result code for use in cases in which none of the other defined
    * result codes are appropriate.
    */
@@ -664,6 +688,12 @@
       case LOOP_DETECT:
         msgID = MSGID_RESULT_LOOP_DETECT;
         break;
+      case SORT_CONTROL_MISSING:
+        msgID = MSGID_RESULT_SORT_CONTROL_MISSING;
+        break;
+      case OFFSET_RANGE_ERROR:
+        msgID = MSGID_RESULT_OFFSET_RANGE_ERROR;
+        break;
       case NAMING_VIOLATION:
         msgID = MSGID_RESULT_NAMING_VIOLATION;
         break;
@@ -685,6 +715,9 @@
       case AFFECTS_MULTIPLE_DSAS:
         msgID = MSGID_RESULT_AFFECTS_MULTIPLE_DSAS;
         break;
+      case VIRTUAL_LIST_VIEW_ERROR:
+        msgID = MSGID_RESULT_VIRTUAL_LIST_VIEW_ERROR;
+        break;
       case CLIENT_SIDE_SERVER_DOWN:
         msgID = MSGID_RESULT_CLIENT_SIDE_SERVER_DOWN;
         break;

--
Gitblit v1.10.0