Bug Fixes in SNMP++v2.8a relative to SNMP++2.8 ============================================== - snmp_pp.h: line 114: Changed ~Snmp(); to virtual ~Snmp(); - smi.h: line 141 Changed ASN.1 tag value of UInt32 to 2 (same as Gauge32) #define sNMP_SYNTAX_UINT32 sNMP_SYNTAX_GAUGE32 removed duplicate case labels in asn1.cpp, snmpmsg.cpp and gauge.cpp - snmpmsg.cpp: line 355 Changed snmpTrapOID to tempvb.set_oid("1.3.6.1.6.3.1.1.4.1.0"); - Makefiles for Solaris and Digital Unix, Added the following rule to the Linux Makefiles: .SUFFIXES: .cpp .C - asn1.h: line 264 Changed prototype of snmp_parse_var_op to: unsigned char * snmp_parse_var_op( unsigned char *data, oid *var_name, int *var_name_len, unsigned char *var_val_type, int *var_val_len, unsigned char **var_val, int *listlength); - asn1.cpp: line 645 Replaced unsigned char buf[MAX_OID_LEN]; by unsigned char buf[MAX_OID_LEN*sizeof(unsigned long)]; because buffer needs to be MAX_OID_LEN * 32bit instead of 8bit. - asn1.cpp: line 296 Added: *datalength -= u_integer_len; - oid.cpp: Replaced operator+=(unsigned long) by Oid& Oid::operator+=( const unsigned long i) { Oid other(&i, 1); (*this) += other; return *this; } to fix a memory allocation bug when adding an unsigned long greater than 999 (and BTW this code performs much better). - oid.cpp: Replaced any occurances of "%ld" with "%lu" because an OID sub-identifier may be any value from 0 to 2^32-1 which needs an unsigned long on 32bit systems. - uxsnmp.cpp: line 136: agent_addr.sin_port = ((UdpAddress &)address).get_port(); chnged to agent_addr.sin_port = htons(((UdpAddress &)address).get_port()); - snmpmsg.cpp: line 116-121 // case sNMP_SYNTAX_NULL case sNMP_SYNTAX_NULL: changed to (to support SNMPv2c exceptions) // case sNMP_SYNTAX_NULL case sNMP_SYNTAX_NULL: case sNMP_SYNTAX_NOSUCHOBJECT: case sNMP_SYNTAX_NOSUCHINSTANCE: case sNMP_SYNTAX_ENDOFMIBVIEW: