From 34a2c70f75a705620dd88462787da73e001d0dc7 Mon Sep 17 00:00:00 2001
From: jvergara <jvergara@localhost>
Date: Fri, 04 Apr 2008 11:46:06 +0000
Subject: [PATCH] Fix for issue 3120 (Bad behavior of the status CLI and status panel if 2 LDAP connection handlers)
---
opends/src/guitools/org/opends/guitools/statuspanel/ConfigFromFile.java | 35 +++++++++++++++++++++++++++++++++++
1 files changed, 35 insertions(+), 0 deletions(-)
diff --git a/opends/src/guitools/org/opends/guitools/statuspanel/ConfigFromFile.java b/opends/src/guitools/org/opends/guitools/statuspanel/ConfigFromFile.java
index f8816fc..7f640d9 100644
--- a/opends/src/guitools/org/opends/guitools/statuspanel/ConfigFromFile.java
+++ b/opends/src/guitools/org/opends/guitools/statuspanel/ConfigFromFile.java
@@ -28,6 +28,7 @@
package org.opends.guitools.statuspanel;
import java.io.IOException;
+import java.util.Collection;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.List;
@@ -36,6 +37,10 @@
import java.util.logging.Level;
import java.util.logging.Logger;
+import org.opends.server.admin.DefaultBehaviorProvider;
+import org.opends.server.admin.DefinedDefaultBehaviorProvider;
+import org.opends.server.admin.IPAddressPropertyDefinition;
+import org.opends.server.admin.std.meta.LDAPConnectionHandlerCfgDefn;
import org.opends.server.core.DirectoryServer;
import org.opends.admin.ads.ADSContext;
import org.opends.admin.ads.util.ConnectionUtils;
@@ -415,6 +420,31 @@
}
/**
+ * Returns the default LDAP address as defined in the configuration.
+ * @return the default LDAP address as defined in the configuration.
+ */
+ static String getDefaultLdapAddress()
+ {
+ String address = null;
+ // Get default value
+ LDAPConnectionHandlerCfgDefn connHandler =
+ LDAPConnectionHandlerCfgDefn.getInstance();
+ IPAddressPropertyDefinition prop =
+ connHandler.getListenAddressPropertyDefinition();
+ DefaultBehaviorProvider p = prop.getDefaultBehaviorProvider();
+ if (p instanceof DefinedDefaultBehaviorProvider)
+ {
+ Collection<?> defaultValues =
+ ((DefinedDefaultBehaviorProvider)p).getDefaultValues();
+ if (!defaultValues.isEmpty())
+ {
+ address = defaultValues.iterator().next().toString();
+ }
+ }
+ return address;
+ }
+
+ /**
* An convenience method to know if the provided ID corresponds to a
* configuration backend or not.
* @param id the backend ID to analyze
@@ -483,6 +513,11 @@
ListenerDescriptor.State state;
if (entry.hasObjectClass(ldapConnectionHandlerOc))
{
+ if (address == null)
+ {
+ address = getDefaultLdapAddress();
+ }
+
addressPort = address+":"+port;
if (isSecure)
{
--
Gitblit v1.10.0