From 66158c723e127ef41a4a60566fb8f1f53c680e54 Mon Sep 17 00:00:00 2001
From: fguigues <fguigues@localhost>
Date: Thu, 22 May 2008 07:37:52 +0000
Subject: [PATCH] Fixes:  3142: SNMP: SNMP Connection Handler should accept snmp requests on localhost 3239: On Windows, server can't load jdmkrt.jar file 3253: SNMP: wrong value for dsServerType entry

---
 opendj-sdk/opends/src/snmp/src/org/opends/server/snmp/DsTableEntryImpl.java |  295 +++++++++++++++++++++++++++++++---------------------------
 1 files changed, 158 insertions(+), 137 deletions(-)

diff --git a/opendj-sdk/opends/src/snmp/src/org/opends/server/snmp/DsTableEntryImpl.java b/opendj-sdk/opends/src/snmp/src/org/opends/server/snmp/DsTableEntryImpl.java
index 8432284..b78f2d5 100644
--- a/opendj-sdk/opends/src/snmp/src/org/opends/server/snmp/DsTableEntryImpl.java
+++ b/opendj-sdk/opends/src/snmp/src/org/opends/server/snmp/DsTableEntryImpl.java
@@ -41,150 +41,171 @@
  */
 public class DsTableEntryImpl extends DsTableEntry implements DsEntry {
 
-  /**
-   * The serial version identifier required to satisfy the compiler because
-   * this class implements the <CODE>java.io.Serializable</CODE> interface.
-   * This value was generated using the <CODE>serialver</CODE> command-line
-   * utility included with the Java SDK.
-   */
-  private static final long serialVersionUID = -3346380035687141480L;
-  /**
-   * The debug log tracer for this class.
-   */
-  private static final DebugTracer TRACER = DebugLogger.getTracer();
-  /**
-   * Directory Server MBeanServer.
-   */
-  private MBeanServer server;
-  /**
-   * Mapping Class.
-   */
-  private SNMPMonitor monitor;
-  /**
-   * ObjectName of the entry.
-   */
-  private ObjectName entryName;
-  /**
-   * Index of the Directory Server Instance (applIndex).
-   */
-  private Integer applIndex;
+    /**
+     * The serial version identifier required to satisfy the compiler because
+     * this class implements the <CODE>java.io.Serializable</CODE> interface.
+     * This value was generated using the <CODE>serialver</CODE> command-line
+     * utility included with the Java SDK.
+     */
+    private static final long serialVersionUID = -3346380035687141480L;
+    /**
+     * The debug log tracer for this class.
+     */
+    private static final DebugTracer TRACER = DebugLogger.getTracer();
+    /**
+     * Directory Server MBeanServer.
+     */
+    private MBeanServer server;
+    /**
+     * Mapping Class.
+     */
+    private SNMPMonitor monitor;
+    /**
+     * ObjectName of the entry.
+     */
+    private ObjectName entryName;
+    /**
+     * Index of the Directory Server Instance (applIndex).
+     */
+    private Integer applIndex;
 
-  /**
-   * Creates a DsTableEntry.
-   * @param mib the SNMP Mib where the entry will be created
-   * @param server where the mapping objects will be found
-   * @param index of the entry in the DsTable
-   */
-  public DsTableEntryImpl(SnmpMib mib,
-          MBeanServer server,
-          int index) {
-    super(mib);
-    this.server = server;
-    this.monitor = SNMPMonitor.getMonitor(server);
-    this.applIndex = new Integer(index);
-  }
-
-  /**
-   * {@inheritDoc}
-   * @return DsCacheHits as Long
-   */
-  @Override
-  public Long getDsCacheHits() {
-    try {
-      Long value = Long.parseLong((String) this.monitor.getAttribute(
-              SNMPConnectionHandlerDefinitions.MONITOR_ENTRY_CACHES_OBJECTNANE,
-              "entryCacheHits"));
-      return SNMPMonitor.counter32Value(value);
-    } catch (Exception ex) {
-      if (DebugLogger.debugEnabled()) {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ex);
-      }
+    /**
+     * Creates a DsTableEntry.
+     * @param mib the SNMP Mib where the entry will be created
+     * @param server where the mapping objects will be found
+     * @param index of the entry in the DsTable
+     */
+    public DsTableEntryImpl(SnmpMib mib,
+            MBeanServer server,
+            int index) {
+        super(mib);
+        this.server = server;
+        this.monitor = SNMPMonitor.getMonitor(server);
+        this.applIndex = new Integer(index);
     }
-    return 0L;
-  }
 
-  /**
-   * {@inheritDoc}
-   * @return DsCacheEntries as Long
-   */
-  @Override
-  public Long getDsCacheEntries() {
-    try {
-      Long value = Long.parseLong((String) this.monitor.getAttribute(
-              SNMPConnectionHandlerDefinitions.MONITOR_ENTRY_CACHES_OBJECTNANE,
-              "currentEntryCacheCount"));
-      return SNMPMonitor.gauge32Value(value);
-    } catch (Exception ex) {
-      if (DebugLogger.debugEnabled()) {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ex);
-      }
-    }
-    return 0L;
-  }
-
-  /**
-   * {@inheritDoc}
-   * @return DsMasterEntries as Long
-   */
-  @Override
-  public Long getDsMasterEntries() {
-    Set monitorBackends = null;
-    Long result = 0L;
-    try {
-      monitorBackends = this.server.queryNames(SNMPMonitor.pattern, null);
-      for (Iterator iter = monitorBackends.iterator(); iter.hasNext();) {
-        ObjectName name = (ObjectName) iter.next();
-        Object value = this.monitor.getAttribute(name,
-                "ds-backend-entry-count");
-        if (value != null) {
-          result = result + new Long((String) value);
+    /**
+     * Getter for the "DsServerType" variable.
+     * @return a Byte[] representing the Ds Server Type
+     */
+    public Byte[] getDsServerType() {
+        try {
+            String value1 = (String) this.monitor.getAttribute(
+                    SNMPConnectionHandlerDefinitions.MONITOR_VERSION_OBJECTNAME,
+                    "fullVersion");
+            String value2 = (String) this.monitor.getAttribute(
+                    SNMPConnectionHandlerDefinitions.MONITOR_VERSION_OBJECTNAME,
+                    "buildID");
+            return SNMPMonitor.string2ByteArray(value1 + " - " + value2);
+        } catch (Exception ex) {
+            if (DebugLogger.debugEnabled()) {
+                TRACER.debugCaught(DebugLogLevel.ERROR, ex);
+            }
+            return null;
         }
-      }
-      return SNMPMonitor.gauge32Value(result);
-    } catch (Exception ex) {
-      if (DebugLogger.debugEnabled()) {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ex);
-      }
     }
-    return 0L;
-  }
 
-  /**
-   * {@inheritDoc}
-   * @return DsServerDescription as String
-   */
-  @Override
-  public String getDsServerDescription() {
-    String result = null;
-    try {
-      result = (String) this.monitor.getAttribute(
+    /**
+     * {@inheritDoc}
+     * @return DsCacheHits as Long
+     */
+    @Override
+    public Long getDsCacheHits() {
+        try {
+            Long value = Long.parseLong((String) this.monitor.getAttribute(
+              SNMPConnectionHandlerDefinitions.MONITOR_ENTRY_CACHES_OBJECTNANE,
+                    "entryCacheHits"));
+            return SNMPMonitor.counter32Value(value);
+        } catch (Exception ex) {
+            if (DebugLogger.debugEnabled()) {
+                TRACER.debugCaught(DebugLogLevel.ERROR, ex);
+            }
+        }
+        return 0L;
+    }
+
+    /**
+     * {@inheritDoc}
+     * @return DsCacheEntries as Long
+     */
+    @Override
+    public Long getDsCacheEntries() {
+        try {
+            Long value = Long.parseLong((String) this.monitor.getAttribute(
+              SNMPConnectionHandlerDefinitions.MONITOR_ENTRY_CACHES_OBJECTNANE,
+                    "currentEntryCacheCount"));
+            return SNMPMonitor.gauge32Value(value);
+        } catch (Exception ex) {
+            if (DebugLogger.debugEnabled()) {
+                TRACER.debugCaught(DebugLogLevel.ERROR, ex);
+            }
+        }
+        return 0L;
+    }
+
+    /**
+     * {@inheritDoc}
+     * @return DsMasterEntries as Long
+     */
+    @Override
+    public Long getDsMasterEntries() {
+        Set monitorBackends = null;
+        Long result = 0L;
+        try {
+            monitorBackends = this.server.queryNames(SNMPMonitor.pattern, null);
+            for (Iterator iter = monitorBackends.iterator(); iter.hasNext();) {
+                ObjectName name = (ObjectName) iter.next();
+                Object value = this.monitor.getAttribute(name,
+                        "ds-backend-entry-count");
+                if (value != null) {
+                    result = result + new Long((String) value);
+                }
+            }
+            return SNMPMonitor.gauge32Value(result);
+        } catch (Exception ex) {
+            if (DebugLogger.debugEnabled()) {
+                TRACER.debugCaught(DebugLogLevel.ERROR, ex);
+            }
+        }
+        return 0L;
+    }
+
+    /**
+     * {@inheritDoc}
+     * @return DsServerDescription as String
+     */
+    @Override
+    public String getDsServerDescription() {
+        String result = null;
+        try {
+            result = (String) this.monitor.getAttribute(
         SNMPConnectionHandlerDefinitions.MONITOR_SYSTEM_INFORMATION_OBJECTNAME,
-        "workingDirectory");
-    } catch (Exception ex) {
-      if (DebugLogger.debugEnabled()) {
-        TRACER.debugCaught(DebugLogLevel.ERROR, ex);
-      }
-    }
-    return result;
-  }
-
-  /**
-   * Gets the object of the entry.
-   * @return ObjectName of the entry
-   */
-  public ObjectName getObjectName() {
-    if (this.entryName == null) {
-      try {
-        this.entryName = new ObjectName(
-        SNMPConnectionHandlerDefinitions.SNMP_DOMAIN +
-        "type=DsTableEntry,name=" +
-        SNMPConnectionHandlerDefinitions.MONITOR_SYSTEM_INFORMATION_OBJECTNAME);
-      } catch (Exception ex) {
-        if (DebugLogger.debugEnabled()) {
-          TRACER.debugCaught(DebugLogLevel.ERROR, ex);
+                    "workingDirectory");
+        } catch (Exception ex) {
+            if (DebugLogger.debugEnabled()) {
+                TRACER.debugCaught(DebugLogLevel.ERROR, ex);
+            }
         }
-      }
+        return result;
     }
-    return this.entryName;
-  }
+
+    /**
+     * Gets the object of the entry.
+     * @return ObjectName of the entry
+     */
+    public ObjectName getObjectName() {
+        if (this.entryName == null) {
+            try {
+                this.entryName = new ObjectName(
+                        SNMPConnectionHandlerDefinitions.SNMP_DOMAIN +
+                        "type=DsTableEntry,name=" +
+        SNMPConnectionHandlerDefinitions.MONITOR_SYSTEM_INFORMATION_OBJECTNAME);
+            } catch (Exception ex) {
+                if (DebugLogger.debugEnabled()) {
+                    TRACER.debugCaught(DebugLogLevel.ERROR, ex);
+                }
+            }
+        }
+        return this.entryName;
+    }
 }

--
Gitblit v1.10.0