All pastes #287127 Raw Edit

Miscellany

public text v1 · immutable
#287127 ·published 2006-12-21 04:56 UTC
rendered paste body
Index: opennms-joesnmp/src/main/java/org/opennms/protocols/snmp/SnmpPduTrap.java
===================================================================
--- opennms-joesnmp/src/main/java/org/opennms/protocols/snmp/SnmpPduTrap.java  (revision 5337)
+++ opennms-joesnmp/src/main/java/org/opennms/protocols/snmp/SnmpPduTrap.java  (working copy)
@@ -301,10 +301,13 @@
      * Set's the timeticks in the trap.
      * 
      * @param ts
-     *            The timeticks for the trap.
+     *            The timeticks (centiseconds) for the trap, not to exceed 2^32-1.
      * 
      */
-    public void setTimeStamp(long ts) {
+    public void setTimeStamp(long ts) throws IllegalArgumentException {
+       if ((ts < 0) || (ts > 4294967295L)) {
+               throw new IllegalArgumentException("Value must be within bounds for an unsigned 32-bit integer");
+       }
         m_tstamp = ts;
     }
 
Index: opennms-snmp/opennms-snmp-api/src/main/java/org/opennms/netmgt/snmp/SnmpV1TrapBuilder.java
===================================================================
--- opennms-snmp/opennms-snmp-api/src/main/java/org/opennms/netmgt/snmp/SnmpV1TrapBuilder.java  (revision 5337)
+++ opennms-snmp/opennms-snmp-api/src/main/java/org/opennms/netmgt/snmp/SnmpV1TrapBuilder.java  (working copy)
@@ -43,6 +43,11 @@
 
     void setSpecific(int specific);
 
+    /**
+     *  
+     * @param timeStamp
+     * A timestamp value, in TimeTicks (centiseconds), not to exceed 2^32-1
+     */
     void setTimeStamp(long timeStamp);
 
 }
Index: opennms-services/src/test/java/org/opennms/netmgt/trapd/TrapdTest.java
===================================================================
--- opennms-services/src/test/java/org/opennms/netmgt/trapd/TrapdTest.java     (revision 5337)
+++ opennms-services/src/test/java/org/opennms/netmgt/trapd/TrapdTest.java     (working copy)
@@ -50,7 +50,17 @@
         pdu.setEnterprise(SnmpObjId.get(".1.3.6.1.4.1.5813"));
         pdu.setGeneric(1);
         pdu.setSpecific(0);
-        pdu.setTimeStamp(System.currentTimeMillis());
+        
+        boolean boundsCheckOK = false;
+        try {
+               pdu.setTimeStamp(4398046511104L);  // 4398046511104L == 2^42 > 2^32-1
+        } catch (IllegalArgumentException iae) {
+               boundsCheckOK = true;
+        }
+        if (! boundsCheckOK) {
+               throw new Exception("Strategy class TRAPv1.setTimestamp() did not except on a TimeTicks value > 2^32-1");
+        }
+        pdu.setTimeStamp(666L);
         pdu.setAgentAddress(localAddr);
         
 
@@ -76,5 +86,6 @@
         assertEquals(0, ea.unanticipatedEvents().size());
 
        }
+
 }