From 86ad6a08499797f9b3204896caee947abb03394f Mon Sep 17 00:00:00 2001
From: Yannick Lecaillez <yannick.lecaillez@forgerock.com>
Date: Mon, 07 Nov 2016 13:59:40 +0000
Subject: [PATCH] OPENDJ-3179: Migrate LDAP Connection Handler to SDK Grizzly transport
---
opendj-server-legacy/src/main/java/org/forgerock/opendj/reactive/LDAPConnectionHandler2.java | 22 +++++++++++++++++++++-
1 files changed, 21 insertions(+), 1 deletions(-)
diff --git a/opendj-server-legacy/src/main/java/org/forgerock/opendj/reactive/LDAPConnectionHandler2.java b/opendj-server-legacy/src/main/java/org/forgerock/opendj/reactive/LDAPConnectionHandler2.java
index 753c8da..8127e01 100644
--- a/opendj-server-legacy/src/main/java/org/forgerock/opendj/reactive/LDAPConnectionHandler2.java
+++ b/opendj-server-legacy/src/main/java/org/forgerock/opendj/reactive/LDAPConnectionHandler2.java
@@ -53,9 +53,11 @@
import org.forgerock.opendj.ldap.AddressMask;
import org.forgerock.opendj.ldap.DN;
import org.forgerock.opendj.ldap.LDAPClientContext;
+import org.forgerock.opendj.ldap.LDAPClientContext.DisconnectListener;
import org.forgerock.opendj.ldap.LDAPListener;
import org.forgerock.opendj.ldap.LdapException;
import org.forgerock.opendj.ldap.ResultCode;
+import org.forgerock.opendj.ldap.requests.UnbindRequest;
import org.forgerock.opendj.ldap.responses.Response;
import org.forgerock.opendj.ldap.spi.LdapMessages.LdapRawMessage;
import org.forgerock.opendj.server.config.server.ConnectionHandlerCfg;
@@ -646,6 +648,24 @@
public ReactiveHandler<LDAPClientContext, LdapRawMessage, Stream<Response>> apply(
LDAPClientContext clientContext) throws LdapException {
final LDAPClientConnection2 conn = canAccept(clientContext);
+ connectionList.add(conn);
+ clientContext.onDisconnect(new DisconnectListener() {
+ @Override
+ public void exceptionOccurred(LDAPClientContext context, Throwable error) {
+ connectionList.remove(conn);
+ }
+
+ @Override
+ public void connectionDisconnected(LDAPClientContext context, ResultCode resultCode,
+ String diagnosticMessage) {
+ connectionList.remove(conn);
+ }
+
+ @Override
+ public void connectionClosed(LDAPClientContext context, UnbindRequest unbindRequest) {
+ connectionList.remove(conn);
+ }
+ });
return new ReactiveHandler<LDAPClientContext, LdapRawMessage, Stream<Response>>() {
@Override
public Single<Stream<Response>> handle(LDAPClientContext context, LdapRawMessage request)
@@ -798,7 +818,7 @@
if (useSSL()) {
try {
- clientContext.enableTLS(createSSLEngine());
+ clientContext.enableTLS(createSSLEngine(), false);
} catch (DirectoryException e) {
throw LdapException.newLdapException(e.getResultCode(), e);
}
--
Gitblit v1.10.0