From 1bdcce4d1f73ba57fd4c2a91e8833d943b193a6e Mon Sep 17 00:00:00 2001
From: matthew_swift <matthew_swift@localhost>
Date: Mon, 27 Apr 2009 18:19:56 +0000
Subject: [PATCH] Fix issue 3936: Allow intermediate CONNECT messages to be logged.

---
 opendj-sdk/opends/src/server/org/opends/server/loggers/TextAccessLogPublisher.java |   68 +++++++++++++++++++++++++++++++++-
 1 files changed, 66 insertions(+), 2 deletions(-)

diff --git a/opendj-sdk/opends/src/server/org/opends/server/loggers/TextAccessLogPublisher.java b/opendj-sdk/opends/src/server/org/opends/server/loggers/TextAccessLogPublisher.java
index 5bb6688..5f6d8e0 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/loggers/TextAccessLogPublisher.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/loggers/TextAccessLogPublisher.java
@@ -854,6 +854,20 @@
    * {@inheritDoc}
    */
   @Override
+  public void logConnectIntermediateMessage(
+      ClientConnection clientConnection, String category,
+      Map<String, String> content)
+  {
+    logIntermediateMessage(clientConnection, "CONNECT", category,
+        content);
+  }
+
+
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
   public void logDeleteIntermediateMessage(DeleteOperation deleteOperation,
       String category, Map<String, String> content)
   {
@@ -997,6 +1011,20 @@
    * {@inheritDoc}
    */
   @Override
+  public void logDisconnectIntermediateMessage(
+      ClientConnection clientConnection, String category,
+      Map<String, String> content)
+  {
+    logIntermediateMessage(clientConnection, "DISCONNECT", category,
+        content);
+  }
+
+
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
   public void logExtendedIntermediateMessage(
       ExtendedOperation extendedOperation, String category,
       Map<String, String> content)
@@ -1461,11 +1489,11 @@
   private void appendHeader(Operation operation, String opType,
       String category, StringBuilder buffer)
   {
-    buffer.append("[");
+    buffer.append('[');
     buffer.append(TimeThread.getLocalTime());
     buffer.append("] ");
     buffer.append(opType);
-    buffer.append(" ");
+    buffer.append(' ');
     buffer.append(category);
     buffer.append(" conn=");
     buffer.append(operation.getConnectionID());
@@ -1526,4 +1554,40 @@
 
     writer.writeRecord(buffer.toString());
   }
+
+
+
+  //Writes an intermediate message to the log.
+  private void logIntermediateMessage(
+      ClientConnection clientConnection, String type, String category,
+      Map<String, String> content)
+  {
+    long connectionID = clientConnection.getConnectionID();
+
+    if (connectionID < 0 && suppressInternalOperations)
+    {
+      return;
+    }
+
+    StringBuilder buffer = new StringBuilder(100);
+
+    buffer.append('[');
+    buffer.append(TimeThread.getLocalTime());
+    buffer.append("] ");
+    buffer.append(type);
+    buffer.append(' ');
+    buffer.append(category);
+    buffer.append(" conn=");
+    buffer.append(connectionID);
+
+    for (Map.Entry<String, String> entry : content.entrySet())
+    {
+      buffer.append(' ');
+      buffer.append(entry.getKey());
+      buffer.append('=');
+      buffer.append(entry.getValue());
+    }
+
+    writer.writeRecord(buffer.toString());
+  }
 }

--
Gitblit v1.10.0