From e1862b6b8d276a6719f1277a7ca9781a1294180c Mon Sep 17 00:00:00 2001
From: neil_a_wilson <neil_a_wilson@localhost>
Date: Sat, 23 Sep 2006 19:27:42 +0000
Subject: [PATCH] Update the delete, modify, modify DN, and search operations to add a check for a cancel between the pre-operation plugin processing and sending the request to the backend.

---
 opends/src/server/org/opends/server/core/SearchOperation.java |   25 +++++++++++++++++++++++++
 1 files changed, 25 insertions(+), 0 deletions(-)

diff --git a/opends/src/server/org/opends/server/core/SearchOperation.java b/opends/src/server/org/opends/server/core/SearchOperation.java
index 169a901..3005ceb 100644
--- a/opends/src/server/org/opends/server/core/SearchOperation.java
+++ b/opends/src/server/org/opends/server/core/SearchOperation.java
@@ -1974,6 +1974,31 @@
       }
 
 
+      // Check for and handle a request to cancel this operation.
+      if (cancelRequest != null)
+      {
+        setCancelResult(CancelResult.CANCELED);
+
+        if (cancelRequest.notifyOriginalRequestor() ||
+            DirectoryServer.notifyAbandonedOperations())
+        {
+          setResultCode(ResultCode.CANCELED);
+
+          String cancelReason = cancelRequest.getCancelReason();
+          if (cancelReason != null)
+          {
+            appendErrorMessage(cancelReason);
+          }
+
+          clientConnection.sendResponse(this);
+        }
+
+        processingStopTime = System.currentTimeMillis();
+        logSearchResultDone(this);
+        return;
+      }
+
+
       // Get the backend that should hold the search base.  If there is none,
       // then fail.
       Backend backend = DirectoryServer.getBackend(baseDN);

--
Gitblit v1.10.0