📄 changes.snmp++v3
字号:
Changes snmp++v3.2.21a======================- Fixed: Don't allow SNMP INFORM over SNMPv1.- Fixed: If a SNMPv3 response was received from a different address/port than the request was sent to, no valid mapping address/port <-> enigne id was stored, so no communication was possible.- Added: New overloeaded Oid::set_data() that takes a char array instead of ulong array.- Fixed: The dotted oid string parser no longer accepts strings like "1.3.6.$public", "1.3.6$public$" or "1.3.6.$public$1".- Fixed: Removed a lot of compiler warnings on Windows x64 (with help of Sanjay Bhatia). Introduced new type for sockets (SnmpSocket), and removed SNMPHANDLE type.- Changed: Removed global mutex for v3MP and USM.- Fixed: sockets were not closed if bind failed. (found from John McCaskey)- Fixed: Engine id discovery did not work when sending SNMPv3 request to IPv4 Address over IPv6 socket.- Fixed: For async SNMPv3 requests that resulted always in a unknown engine id or not in time report from the agent the Snmp class continued to resend a request to the agent.- Fixed: USM was not thread safe (found from John McCaskey): Changing users from two different threads or changing users while messages of these users are processed could cause segmentation faults. The following functions of USM now behave different than before or require calls to new functions: all three get_user() functions, peek_first_user(), peek_next_user(), peek_first_luser(), peek_next_luser(), get_user_count(). If you use any of these functions, read the new documentation in usm_v3.h and change your code (like it was done for the QtExample).- Changed: The functions to set/get the trap listen port of CNotifyEventQueue ar no longer static. Use the new functions Snmp::notify_set/get_listen_port() instead.- Removed: Old X11 code, user defined events and timeouts.- Improved: Counter64 now uses 64 bit integer for math operations, instead of long double. - Fixed: Zero length UDP packets will no longer trigger a transport-level-failed callback.Changes snmp++v3.2.20a======================- Improved: Detect too large received messages.- Improved: Removed hard coded limit for max number of Vbs (PDU_MAX_VBS) in a Pdu object.- Fixed: Bug in SNMPv3 encryption code which will lead to a crash after a random number of encryptions (Stuart Marks).- Improved: Compilation of address.cpp for Solaris.Changes snmp++v3.2.19=====================- Fixed: Requests with nonzero but wrong security engine id now result in a unknown engine id report.- Added: New functions USM::add_usm_user() and new functions to remove engine ids and hosts from the v3MP and USM tables.- Changed: command line arguments of consoleExamples.Changes snmp++v3.2.18=====================- Added: Privacy protocol 3DES. The Auth/Priv interface was modifed. (based on patch from Pierre Pacchioni)- Fixed: Possible memory leak in mp_v3.cpp v3MP::snmp_parse(..).- Fixed: Uninitialized variable in asn1.cpp asn_parse_length(..).- Fixed: Uninitialized variables in snmpmsg.cpp SnmpMessage::unload when v3MP::I->snmp_parse() fails. (Reported by Rob Crawford)- Changed: ID of privacy protocol AES128 now is 4 as required by the RFC.- Fixed: Vb::get_value(ptr, len, maxlen) may write maxlen+1 bytes into ptr buffer (Daniel Suman). This function now is Vb::get_value(ptr, len, maxlen, add_null_byte) where the default for add_null_byte is false.- Improved: Workaround for Cisco SNMP agents that set request ids to 0x7fffffff in report messages.- Fixed: Make auth_priv.h/cpp compile if both OpenSSL and LibTomCrypt are defined.- Added: Basic support for VxWorks with PPC603 (Thanks to Lee Noll).Changes snmp++v3.2.17=====================- Changed: Updated auth_priv.cpp for LibTomCrypt 1.02- Changed: Moved logging classes from agent++ into snmp++. (Fedja Jeleskovic) Function debug_set_logfile() has been removed, use DefaultLog::init(new AgentLogImpl("filename")) and DefaultLog::log()->set_filter() instead. All logging within snmp++ will be moved to the LOG_XXX macros and the debugprintf() function will be removed.- Changed: Renamed "#ifdef alpha" to "#ifdef __osf__". When compiling for DigitalUnix/Tru64 make sure, that __osf__ is defined.Changes snmp++v3.2.16=====================- Improved: notify_register() now returns correct error codes.- Added: Snmp::start_poll_thread() that starts a new thread that polls for async responses and informs/traps. The thread will be stopped automatically in the destructor. It also can be stopped using Snmp::stop_poll_thread(). (Fedja Jeleskovic)- Added: New transport layer error code SNMP_CLASS_TL_ACCESS_DENIED for (errno == EACCES)- Improved: new define SNMP_PP_MUTABLE that can be defined to mutable for compilers that support mutable member variables.- Changed: renamed OctetStr::set_hex_np_char() to set_np_char()- Improved: get_printable() will return the same buffer for each call if the object wasn't changed.- Added: Pdu::get_max_vbs() to get the value of PDU_MAX_VBS at runtime.- Fixed: Bug in snmperrs.h (Jason Olenhouse)Changes snmp++v3.2.15=====================- Fixed: Bug in asn1.cpp for systems where sizeof(long) != sizeof(*long) (Hu Shu)- Fixed: timeout calculation in EventListHolder::SNMPProcessEvents() (Xu Manjiang)- Fixed: OctetStr::clear() now sets the length to zero (Mr. AWD)- Fixed: Set sin_len of struct sockaddr_in before calling bind(). Define CYGPKG_NET_OPENBSD_STACK to enable it. (Harald Kuethe)- Changed: Pdu class checks Vb validity after all assignments. It is no longer possible to add a Vb that is not valid. Some set/get member functions now return bool instead of void.Changes snmp++v3.2.14=====================- Improved: Return value of Pdu functions get/set_notify_id and get/set_notify_enterprise. (Marek Malowidzki)- Fixed: Check return value of new in SnmpCollection::operator+=() (Marek Malowidzki)- Fixed: Setting a byte with Address::operator[] will set validity of the object to true.- Improved: Behaviour of OctetStr::get_printable() for non printable strings can now be configured.Changes snmp++v3.2.13a======================- Fixed: Version info was not updated.- Fixed: Compilation problems with _NO_SNMPv3- Changed: The user "initial" is no longer automatically added to the USM.- Fixed: Oid class freed memory twice after failed call to operator+=().- Added: Support for AIX 5 (by courtesy of Anders Malmborg)Changes snmp++v3.2.12a======================- Fixed: wrong encryption/decryption for DES and IDEA.- Fixed: consoleExamples can use IPv6.- Fixed: Do not accept illegal lengths for authentication parameters.- Removed: Obsolete XExample.- Fixed: Compilation problem in address.cpp if __sun is defined (Kostas Lykiardopoulos)- Improved: Modified constructor of Snmp class to allow binding to IPv6 socket.- Added: AES can now be used with OpenSSL.- Improved: Compilation under Tru64.- Fixed: Return code of delete_entry and delete_entries in class USMUserTable returned SNMPv3_MP_OK instead SNMPv3_USM_OK.Changes snmp++v3.2.11=====================- Improved: Declared some methods as const (Marek Malowidzki).- Improved: Use shortest possible encoding for serializing SNMP messages to improve compatibility with buggy/broken SNMP-Tools (Henning Eggers).- Fixed: Compilation problems on SUN (Fabrice Bacchella)- Improved: declared some methods as const- Improved: Moved the headers to include/snmp_pp/ to avoid name colissions.- Improved: QtExample can receive traps/informs.- Fixed: Compilation problems with BC++ 5.0 (Vinoth, Christian Cheney)- Improved: Added namespace Snmp_pp (Sorin C.)Changes snmp++v3.2.10a======================- Changed: Added two defines _USER_DEFINED_EVENTS and _USER_DEFINED_TMEOUTS (enabled by default) to switch off the user defined event/timeout queues.- Improved: Added const to various functions and function arguments (Marek Malowidzki)- Fixed: Added missing DLLOPTs in msec.h (Christian Cheney).- Improved: The v3MP uses the Snmp object that received the message for sending out report messages (needed for systems with multiple IP addresses). The constructor of the v3MP class was changed, as the pointer to the Snmp object is no longer needed at construction time.- Changed: Snmp::notify_register() no longer binds to all interfaces, but to the address specified in the constructor of the Snmp object.Changes snmp++v3.2.9d=====================- Improved: Removed usage of some multi-threading critical C routines (for example strtok). Although on many systems, these routines are multi-threading safe, this may not be true for some systems. - Fixed: High CPU usage in SNMPProcessEvents() on Win32 platform.- Fixed: SNMPv1 trap sysUpTime TimeTicks where not decoded correctly as unsigned integer value, resulting in a parse error when sysUpTime > 2^31-1.- Improved: Log levels.- Fixed: USMUserNameTable::add_entry() did not update the privacy password length.- Improved: Examples now use the Snmp::socket_startup() on Win32 platforms.- Added: Two static methods Snmp::socket_startup() and Snmp::socket_cleanup() that initialize/cleanup Winsock library on WIN32 and do nothing for other platforms. The startup method must be called before creating Snmp or Address objects.- Changed: Type of some vars in UsmUserNameTableEntry from uchar* to OctetStr. Check if your code uses this struct.- Changed: engineBoots and engineTime are set to 0 for SNMPv3 noAuthNoPriv messages.Changes snmp++v3.2.8====================- Added: Support for OpenSSL.- Fixed: Compile problem in uxsnmp.cpp. Changes snmp++v3.2.7c=====================- Fixed: Synchronization problem with mpV3::Cache. (Henning Eggers)- Fixed: Memory leak in OctetStr::from_hex_string. (Kent Gibson)- Changed: EventListHolder::SNMPProcessEvents() param is now in milliseconds (was seconds).- Fixed: Memory leak if an async SNMPv3 message timed out (Henning Eggers).- Added: Method Snmp::broadcast_discovery() to do SNMP broadcast discovery. - Improved: Console examples now accept 0 retries, removed warnings with gcc 3.2, and v3MP is now always created.- Added: Qt 3.1 example that demonstrates SNMP++v3 usage with a GUI (Trolltechs Qt 3.1).- Added: Methods to store, load, and query USM users.- Improved: Some minor clean-ups.Changes snmp++v3.2.6b=====================- Fixed: GenAddress passed IPv4 addresses as IPv6 addresses.- Changed: By default IDEA is not compiled into SNMP++ by default because patent licensing is required for commercial use. Please #define _USE_IDEA if you want to compile IDEA into SNMP++. For more details please read also README.v3.- Fixed: Do not add -Dsun to compile command. If you have problems with the SnmpCollection template look at the instructions in collect.h. - Fixed: Destroy Mutex in ~EventListHolder(). - Improved: Lots of cleanups for the address classes. This leads to the following incompatibilities to former versions: + Enums addr_type and version_type are now inside class Address + MacAddress, IpxAddress and IpxSockAddress are no longer included by default, but can be enabled in config_snmp_pp.h Changes snmp++v3.2.5d=====================- Improved: Made AuthMD5::password_to_key more robust against empty passwords.- Changed: The Win32 DLL export macros now use SNMP_PP_DLL instead _USRDLL.- Changed: Moved VC++ project files in a separate package. - Improved: Minor issues with IPv6 support.- Improved: Socket handling.- Fixed: uxsnmp.cpp: Detecting error from socket() return values.- Fixed: Moved SNMPAddInput() SNMPRemoveInput() SNMPAddTimeout and SNMPREmoveTimeout to the class EventListHolder- Fixed: Unique Id generation in CUDEventQueue and CUTEventQueue.- Fixed: Bugs in Vb::get_value() methods that take a char* or unsigned char* as argument- Added: operator+() for Oids (Alexander Gutkin)- Improved: Cleanups in queues Changes snmp++v3.2.4a=====================- Improved: Synchronous and asynchronous SNMP request processing is now separated. Thus, the global event lists have been removed. Each Snmp class now holds its own event lists. To eliminate the use of global event lists a new class EventListHolder was defined. Two new files eventListHolder.h and eventListHolder.cpp contain now declaration and definition of that class respectively. That new class is a container of former eventList global data structure and former global user defined events, user-defined timeouts, notifications and all outstanding messages. (LiorK)- Improved: collect.h (Bill McKinnon)- Improved: FreeBSD 5.0 support.- Added: Makefile.gcc_solaris for compilation with GNU C++ compiler on Solaris. Changes snmp++v3.2.3b=====================- Fixed: Counter64::get_printable() could print negative values (Yakov Y.)- Note: New Makefiles assume that you have defined _USE_LIBTOMCRYPT when a "crypt" directory is present in the same folder as the "snmp++" and "agent++" directories. - Fixed: Compilation problems without _SNMPv3 defined.- Fixed: PDU length computation for encrypted SNMPv3 PDUs.- Improved: New v3MP class.- Fixed: Estimated length calculation for encoded PDU.Changes snmp++v3.2.2d=====================- Fixed: Possible timeouts under heavy load in a multi-threaded environment. [Pavel Spakovsky]- Fixed: DLL support for VC++ did not allow static linking.- Added: Computation of BER encoded length of a Pdu. - Added: VC++.NET project files and fixed DLL support.- Fixed: Errors in Counter64::c64_to_ld() and Counter64::ld_to_c64() [Mikhail Evstiounin]- Improved: Prepared for AES usage replacing libDES. - Fixed: Compilation problems with G++3.2 (needs updated libDES download).Changes snmp++v3.2.1d=====================- Fixed: Memory leak (40 bytes) when adding an user to usm.- Improved: Some cleanups (#include, const).- Fixed: Due to possible race condition in MyMakeReqId() (uxsnmp.cpp) two requests could get the same request id. - Fixed: const casting caused problems with AIX compiler.Changes snmp++v3.2.1====================- Improved: Use zero length user name for SNMPv3 discovery.- Lots of cleanups.Changes snmp++v3.2a===================- Fixed: Compilation problem with address.cpp on Solaris. Changes snmp++v3.2==================- Added: IPv6 support.- Improved: moved the USM functions into the class USM. To add or delete users, you will now have to do the following (see usm_v3.h for more details): Usm *usm = mpGetUsm(); usm->add_usm_user(...); usm->delete_usm_user(...);- Fixed: Possible SegFault in notify queue (Lior Klibansky)- Fixed: Timeout problem in event list (Don Dietz)- Fixed: Don't use isdigit() for BCC (Eric Zerbib)- Added: clear() method to SnmpCollection- Fixed: added clone() method to Pdu class, so SnmpCollection<Pdu> will work again.- Added: Make notify socket decriptor available in Snmp class (Don Dietz)Changes snmp++v3.1.6c=====================- Fixed: mp_v3.cpp: Unsigned integer values were not BER decoded correctly for SNMPv3 messages.- Fixed: Some errors when compiling with -ansi- Improved: Class AuthPriv does no longer depend on USM. Changes snmp++v3.1.6b=====================- Added: BCC32 support.- Added: DLLOPT decoration for debugprintf.Changes snmp++v3.1.6a=====================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -