Version 6.0: 17/10/2007 This is version 6.0 of the simple Java SNMPv1, SNMPv2c and SNMPv3 stack. It can be downloaded from our homepage: - http://www.westhawk.co.uk/resources/snmp/snmp6_0.zip (2.0 Mb) - http://www.westhawk.co.uk/resources/snmp/stubBrowser6_0.zip (53 K) Intermediate changes can now be downloaded via cvs from SourceForge: - http://sourceforge.net/projects/westhawksnmp/ Since we moved the sources to SourceForge, we felt that a major version increment was in order. Read the file StackUsage.html for general information how to use the stack. The frequently asked questions can be found in faq.html. See http://snmp.westhawk.co.uk/index.html Please post any questions on the mailing list: http://snmp.westhawk.co.uk/mailman/listinfo/snmp This version was not tested against IPv6. We would like to thank everyone that was kind enough to send us bug fixes and/or made useful suggestions: - Andy Chandler - Josh Bers - Stephen - Steve A. Cochran - Tausif - Vladislav V. Shikhov Sorry if we've left anyone out. Birgit & Tim ******************************************** ********************* BUG FIXES ************ ******************************************** - Exception in SNMPv3 discovery will no longer result in a tied up transmitter in the context. - SNMPv3 discovery now uses the same retry interval as the original PDU that initiated the discovery. - Timeline is now saved when SNMP engine boots is zero, but SNMP engine time is greater than zero. ******************************************** ********************* OVERALL CHANGES ****** ******************************************** - We had another look at the CERT Advisory CA-2002-03 (http://www.cert.org/advisories/CA-2002-03.html) and we run the two trap tests from the "PROTOS Test-Suite: c06-snmpv" (http://www.ee.oulu.fi/research/ouspg/protos/testing/c06/snmpv1/) against uk.co.westhawk.examplev1.ReceiveTrap: We fixed a couple of NullPointerException, ClassCastException and ArrayIndexOutOfBoundsException and now it runs without a glitch. - We removed the two classes: # uk.co.westhawk.snmp.net.KvmSocket # uk.co.westhawk.snmp.net.NetscapeSocket which have a knock-on effect throughout the stack, the examples and the configuration files. ******************************************** ********************** NEW ***************** ******************************************** *** New classes in package UK.CO.WESTHAWK.EXAMPLEV1: - uk.co.westhawk.examplev1.GenericGetOne A small applet that is driven by javascript (or rather livescript) to send a GetNext. ******************************************** ********************** DELETED ************* ******************************************** *** Deleted classes in package UK.CO.WESTHAWK.SNMP.STACK: - uk.co.westhawk.snmp.net.KvmSocket: - uk.co.westhawk.snmp.net.NetscapeSocket: ******************************************** ********************** CHANGES ************* ******************************************** *** Changes in package UK.CO.WESTHAWK.SNMP.BEANS: - uk.co.westhawk.snmp.beans.UsmDiscoveryBean: Uses SnmpContextv3Pool (instead of SnmpContextv3) Added method: # public void setRetryIntervals(int rinterval[]) *** Changes in package UK.CO.WESTHAWK.SNMP.STACK: - uk.co.westhawk.snmp.stack.AsnDecoderBase: Changed method: # AsnSequence getAsnSequence(InputStream in) Fixed NullPointerException (CERT) - uk.co.westhawk.snmp.stack.AsnObjectId: Changed methods: # AsnObjectId(InputStream in, int len) # public String toString(long v[]) Fixed (both) ArrayIndexOutOfBoundsException (CERT) - uk.co.westhawk.snmp.stack.AsnSequence: Changed method: # AsnObject replaceChild(AsnObject oldChild, AsnObject newChild) Fixed bug that meant first child element was never replaced - uk.co.westhawk.snmp.stack.MultiResponsePdu: - uk.co.westhawk.snmp.stack.TrapPduv1: Changed method: # void fillin(AsnTrapPduv1Sequence seq) Fixed ClassCastException (CERT) - uk.co.westhawk.snmp.stack.Pdu: Added method: # public int[] getRetryIntervals() Changed method: # void fillin(AsnTrapPduv1Sequence seq) Fixed ClassCastException (CERT) - uk.co.westhawk.snmp.stack.ResponsePdu: # Renamed method: (was) public void getErrorStatus(int errorStatus) (now) public void setErrorStatus(int errorStatus) # Renamed method: (was) public void getErrorIndex(int errorIndex) (now) public void setErrorIndex(int errorIndex) - uk.co.westhawk.snmp.stack.SnmpContextv3Basis: Changed methods: # protected boolean addPdu(Pdu pdu, boolean checkDiscovery) Discovery is done (if needed) before the PDU is added to the context. This way an exception will not result in a tied up transmitter in the context. # void discoverIfNeeded(Pdu pdu) Copies the PDU's retry interval to the discovery bean - uk.co.westhawk.snmp.stack.SnmpContextBasisFace: Removed constants: # public final static String NETSCAPE_SOCKET # public final static String KVM_SOCKET - uk.co.westhawk.snmp.stack.SnmpContextPool: - uk.co.westhawk.snmp.stack.SnmpContextv3Pool: Overall changes: Removed all the try/catch(java.io.IOException exc) wrappers around context = getMatchingContext(); so this exception propagates up. - uk.co.westhawk.snmp.stack.TimeWindow: Added method: # public void clearTimeWindow(String snmpEngineId) Changed method: # public boolean updateTimeWindow(String snmpEngineId, int bootsA, int timeA, boolean isAuthentic) Fixed bug that didn't save timeline when bootsA was zero (but timeA was greater than zero) - uk.co.westhawk.snmp.stack.Transmitter: Changed method: # void interruptMe() Test if variable 'me' isn't null - uk.co.westhawk.snmp.stack.varbind: Changed methods: # public varbind(AsnObjectId Oid, AsnObject val) # Object setValue(AsnSequence vb) Fixed NullPointerException (CERT) Fixed ClassCastException (CERT)