From 3d0a586bb52b5365d3f682404bae5964cc8e2a0c Mon Sep 17 00:00:00 2001
From: ludovicp <ludovicp@localhost>
Date: Fri, 28 May 2010 09:41:02 +0000
Subject: [PATCH] Fix for issue #4406. Server should sent a notice of disconnection and close connection when an exception occurs during protocol decode
---
opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPRequestHandler.java | 25 +++++++++++++++++++++++--
1 files changed, 23 insertions(+), 2 deletions(-)
diff --git a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPRequestHandler.java b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPRequestHandler.java
index 528679e..3a3dc1e 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPRequestHandler.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPRequestHandler.java
@@ -22,7 +22,7 @@
* CDDL HEADER END
*
*
- * Copyright 2006-2009 Sun Microsystems, Inc.
+ * Copyright 2006-2010 Sun Microsystems, Inc.
*/
package org.opends.server.protocols.ldap;
@@ -50,10 +50,11 @@
import org.opends.server.loggers.ErrorLogger;
import org.opends.server.loggers.debug.DebugTracer;
import org.opends.server.protocols.asn1.ASN1ByteChannelReader;
+import org.opends.server.protocols.asn1.ASN1Exception;
import org.opends.server.types.DebugLogLevel;
import org.opends.server.types.DisconnectReason;
import org.opends.server.types.InitializationException;
-
+import org.opends.server.types.LDAPException;
/**
@@ -214,12 +215,32 @@
}
}
}
+ catch (ASN1Exception e)
+ {
+ if (debugEnabled())
+ {
+ TRACER.debugCaught(DebugLogLevel.ERROR, e);
+ }
+ readyConnection.disconnect(DisconnectReason.PROTOCOL_ERROR, true,
+ e.getMessageObject());
+ }
+ catch (LDAPException e)
+ {
+ if (debugEnabled())
+ {
+ TRACER.debugCaught(DebugLogLevel.ERROR, e);
+ }
+ readyConnection.disconnect(DisconnectReason.PROTOCOL_ERROR, true,
+ e.getMessageObject());
+ }
catch (Exception e)
{
if (debugEnabled())
{
TRACER.debugCaught(DebugLogLevel.ERROR, e);
}
+ readyConnection.disconnect(DisconnectReason.PROTOCOL_ERROR, true,
+ Message.raw(e.toString()));
}
}
--
Gitblit v1.10.0