From a3569b4dfa3ed2510fdb74b6a852bf18f05d78da Mon Sep 17 00:00:00 2001
From: ludovicp <ludovicp@localhost>
Date: Fri, 28 May 2010 09:33:07 +0000
Subject: [PATCH] Fix for issue #3966. Handle notice of deconnection properly
---
opends/src/server/org/opends/server/tools/LDAPSearch.java | 23 +++++++++++++----------
1 files changed, 13 insertions(+), 10 deletions(-)
diff --git a/opends/src/server/org/opends/server/tools/LDAPSearch.java b/opends/src/server/org/opends/server/tools/LDAPSearch.java
index 7b8dcdd..1e6cf7b 100644
--- a/opends/src/server/org/opends/server/tools/LDAPSearch.java
+++ b/opends/src/server/org/opends/server/tools/LDAPSearch.java
@@ -37,6 +37,7 @@
import java.util.concurrent.atomic.AtomicInteger;
import org.opends.server.controls.*;
+import org.opends.server.protocols.ldap.*;
import org.opends.server.util.Base64;
import org.opends.server.util.EmbeddedUtils;
import org.opends.server.util.PasswordReader;
@@ -48,15 +49,6 @@
import org.opends.server.util.args.MultiChoiceArgument;
import org.opends.server.util.args.StringArgument;
import org.opends.server.protocols.asn1.ASN1Exception;
-import org.opends.server.protocols.ldap.LDAPAttribute;
-import org.opends.server.protocols.ldap.LDAPControl;
-import org.opends.server.protocols.ldap.LDAPFilter;
-import org.opends.server.protocols.ldap.LDAPMessage;
-import org.opends.server.protocols.ldap.LDAPResultCode;
-import org.opends.server.protocols.ldap.SearchRequestProtocolOp;
-import org.opends.server.protocols.ldap.SearchResultDoneProtocolOp;
-import org.opends.server.protocols.ldap.SearchResultEntryProtocolOp;
-import org.opends.server.protocols.ldap.SearchResultReferenceProtocolOp;
import org.opends.server.types.*;
import static org.opends.server.loggers.debug.DebugLogger.*;
@@ -380,11 +372,22 @@
break;
default:
+ if(opType == OP_TYPE_EXTENDED_RESPONSE)
+ {
+ ExtendedResponseProtocolOp op =
+ responseMessage.getExtendedResponseProtocolOp();
+ if(op.getOID().equals(OID_NOTICE_OF_DISCONNECTION))
+ {
+ resultCode = op.getResultCode();
+ errorMessage = op.getErrorMessage();
+ matchedDN = op.getMatchedDN();
+ break;
+ }
+ }
// FIXME - throw exception?
Message msg = INFO_SEARCH_OPERATION_INVALID_PROTOCOL.get(
String.valueOf(opType));
err.println(wrapText(msg, MAX_LINE_WIDTH));
- break;
}
if(resultCode != SUCCESS)
--
Gitblit v1.10.0