| | |
| | | import java.util.concurrent.ConcurrentHashMap; |
| | | import java.util.concurrent.atomic.AtomicLong; |
| | | |
| | | import org.forgerock.i18n.LocalizableException; |
| | | import org.forgerock.i18n.LocalizableMessage; |
| | | import org.forgerock.i18n.LocalizableMessageBuilder; |
| | | import org.forgerock.i18n.slf4j.LocalizedLogger; |
| | |
| | | import org.forgerock.opendj.ldap.ByteString; |
| | | import org.forgerock.opendj.ldap.DN; |
| | | import org.forgerock.opendj.ldap.LDAPClientContext; |
| | | import org.forgerock.opendj.ldap.LDAPClientContext.DisconnectListener; |
| | | import org.forgerock.opendj.ldap.ResultCode; |
| | | import org.forgerock.opendj.ldap.requests.UnbindRequest; |
| | | import org.forgerock.opendj.ldap.responses.CompareResult; |
| | | import org.forgerock.opendj.ldap.responses.Response; |
| | | import org.forgerock.opendj.ldap.responses.Responses; |
| | |
| | | } |
| | | |
| | | connectionID = DirectoryServer.newConnectionAccepted(this); |
| | | clientContext.onDisconnect(new DisconnectListener() |
| | | { |
| | | @Override |
| | | public void exceptionOccurred(LDAPClientContext context, Throwable error) |
| | | { |
| | | if (error instanceof LocalizableException) |
| | | { |
| | | disconnect(DisconnectReason.PROTOCOL_ERROR, true, ((LocalizableException) error).getMessageObject()); |
| | | } |
| | | else |
| | | { |
| | | disconnect(DisconnectReason.PROTOCOL_ERROR, true, null); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void connectionDisconnected(LDAPClientContext context, ResultCode resultCode, String diagnosticMessage) |
| | | { |
| | | disconnect(DisconnectReason.SERVER_ERROR, false, null); |
| | | } |
| | | |
| | | @Override |
| | | public void connectionClosed(LDAPClientContext context, UnbindRequest unbindRequest) |
| | | { |
| | | disconnect(DisconnectReason.CLIENT_DISCONNECT, false, null); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | /** |