From 05dfa5fee15b191c3ee1afae0010b70733b1a35b Mon Sep 17 00:00:00 2001
From: neil_a_wilson <neil_a_wilson@localhost>
Date: Mon, 25 Jun 2007 15:51:57 +0000
Subject: [PATCH] Update the pre-parse and pre-operation plugin results to add the ability to skip core processing without skipping post-operation plugins.  Also, make sure that post-response plugins are always invoked for all operations that get far enough in their processing to have called the pre-parse plugins.

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

diff --git a/opends/src/server/org/opends/server/core/ExtendedOperation.java b/opends/src/server/org/opends/server/core/ExtendedOperation.java
index de6c008..8268157 100644
--- a/opends/src/server/org/opends/server/core/ExtendedOperation.java
+++ b/opends/src/server/org/opends/server/core/ExtendedOperation.java
@@ -484,6 +484,7 @@
 
         logExtendedRequest(this);
         logExtendedResponse(this);
+        pluginConfigManager.invokePostResponseExtendedPlugins(this);
         return;
       }
       else if (preParseResult.sendResponseImmediately())
@@ -492,6 +493,11 @@
         logExtendedRequest(this);
         break extendedProcessing;
       }
+      else if (preParseResult.skipCoreProcessing())
+      {
+        skipPostOperation = false;
+        break extendedProcessing;
+      }
 
 
       // Log the extended request message.
@@ -506,6 +512,7 @@
         {
           indicateCancelled(cancelRequest);
           processingStopTime = System.currentTimeMillis();
+          pluginConfigManager.invokePostResponseExtendedPlugins(this);
           return;
         }
       }
@@ -582,6 +589,7 @@
         processingStopTime = System.currentTimeMillis();
 
         logExtendedResponse(this);
+        pluginConfigManager.invokePostResponseExtendedPlugins(this);
         return;
       }
       else if (preOpResult.sendResponseImmediately())
@@ -589,6 +597,11 @@
         skipPostOperation = true;
         break extendedProcessing;
       }
+      else if (preOpResult.skipCoreProcessing())
+      {
+        skipPostOperation = false;
+        break extendedProcessing;
+      }
 
 
       // Check for and handle a request to cancel this operation.
@@ -599,6 +612,7 @@
         {
           indicateCancelled(cancelRequest);
           processingStopTime = System.currentTimeMillis();
+          pluginConfigManager.invokePostResponseExtendedPlugins(this);
           return;
         }
       }
@@ -630,6 +644,7 @@
         processingStopTime = System.currentTimeMillis();
 
         logExtendedResponse(this);
+        pluginConfigManager.invokePostResponseExtendedPlugins(this);
         return;
       }
     }

--
Gitblit v1.10.0