📄 changes.snmp++v3
字号:
- Fixed: Agent address of v1 trap PDUs is set from received SNMPmessage if address is not "0.0.0.0".- Improved: Free BSD support.- Improved: UdpAddress performance.- Added: Pdu::set_v1_trap_address to set v1 trap address. If not set, SNMP++ will use the default host address.- Improved: Added casts in auth_priv.cpp and idea.cpp.Changes snmp++v3.1.5====================- Fixed: Memory leak during processing of SNMPv3 traps- Fixed: Memory leak in agents when sending a UnknownEngineID report- Fixed: Set contextEngineId in Pdu if it was not set by the user.- Improved: Prepared authentication/privacy module for easy extensibility.- Fixed: Convert asn1.cpp back to unix CR/LF ;-)Changes snmp++v3.1.4b=====================- Fixed: Possible crash in ASN.1 BER decoding caused by incorrect SNMP BER encodings.Changes snmp++v3.1.4a=====================- Fixed: Compilation problems with non Linux systems regarding *_r system calls.- Fixed: Handling of unusual v3 msgFlags and msgSecurityModels.Changes snmp++v3.1.4====================- Added: Support for Opaque type. The Opaque type is implemented as OpaqueStr as subclass of OctetStr.Changes snmp++v3.1.3i=====================- Fixed: ASN.1 encoding of very long OIDs (128 subidentifiers) could cause seg.fault.- Improved: Removed obsolete #includes and comments. Changes snmp++v3.1.3h=====================- Fixed: Compilation problems introduced by debugging output redirection on Solaris.- Added: Makefile.hpux11 for HPUX11 aCC.- Improved: ASN.1 decoding of integers.- Fixed: Sending SNMP requests form within asynchronous callback functions.Changes snmp++v3.1.3g=====================- Fixed: ASN.1 parse error when parsing some unsigned integers introduced in v3.1.3c.- Fixed: Completed work on redirecting debugging output. Changes snmp++v3.1.3f=====================- Improved: SNMP++ is no longer busy looping when waiting for synchronous requests. (Changed select timeout in ProcessPendingEvents in eventlist.cpp from 0 to 10 usec).- Improved: Debugging output can now be redirected to a file.Changes snmp++v3.1.3e=====================- Fixed: Dropped v1 traps because of a wrongly detected ASN.1 parse error.- Fixed: Wrongly added trap oid and timestamp variable bindings for received notifications.- Added: _NO_THREADS in config.h to facilitate disabling of threads (contributed by Martin Janzen).Changes snmp++v3.1.3d=====================- Fixed: Traps sent out may had wrong security level noAuthNoPriv.Changes snmp++v3.1.3c=====================- Fixed: Missing type checks in BER decoding have been added.Changes snmp++v3.1.3b=====================- Fixed: A pdu with an unknown engineId report was overwritten by a second pdu with an unknown message id status when they both were send from a multi-homed agent that sends responses not only from one source address.- Fixed: User name returned by agent in error conditions did not match configured user by command generator in some cases.Changes snmp++v3.1.3a=====================- Fixed: Bugs related Solaris 64bit support.- Fixed: Handling of the OPAQUE syntax in snmpmsg.cpp.Changes snmp++v3.1.3====================- Fixed: Now using reentrant system functions like gethostbyname_r, gethostbyaddr_r, and strtok_r.- Fixed: Command line parameter handling of the consoleExamples.- Fixed: MyMakeReqID did not locked its call to snmpEventList->GetEntry against other threads.- Fixed: Locking for eventlist.cpp- Added: Remove operation in SnmpCollection template.Changes snmp++v3.1.2a=====================- Target::get_type() is now const.- Improved: Trap receiver example.Changes snmp++v3.1.2====================- Fixed: Handling of responses to INFORM-requests. Changes snmp++v3.1.1====================- Fixed: Added locking for SNMPv3 MP cache. - Improved: AGENT++ is no longer needed for console examples.- Fixed: SNMP version was not set for received notifications.Changes snmp++v3.1==================- Replaced RSAEURO by LIBDES which is free even for commercial use.Changes snmp++v3.0.2b=====================- Added: Snmpx::Snmpx(int&, const UdpAddress&) to support binding on a specific IP address.Changes snmp++v3.0.2a=====================- Fixed: Filtering notifications.Changes snmp++v3.0.2====================- Fixed: Compilation problems when using async requests on Win32 platforms.- Improved: In v3.0.1 pending requests could block requests from other threads. This has been fixed. Changes snmp++v3.0.1====================- Added: SNMP++v3.0.1 is now thread-safe! - Added: Snmp::report can send SNMPv3 reports. Changes snmp++v3.0n===================- Added: SNMP++ sets the contextEngineID of a SNMPv3 PDU if it is not set by the user.Changes snmp++v3.0m===================- Fixed: Removed all deprecated #include <values.h>. - Fixed: Solaris makefile for Solaris 7.0 (removed Templates.DB related stuff)Changes snmp++v3.0l===================- Fixed: Entries added to the SNMP++ usmUserTable during discovery did not appear in the AGENT++ USM MIB.Changes snmp++v3.0k===================- Fixed: Setting a usmOwnKeyChange object with a zero length string caused a segmentation fault.- Fixed: Compilation problems with BSD Unix.- Fixed: Renaming of snmpv3BootCounter file on WinNT.Changes snmp++v3.0j===================- Fixed: snmpmsg.cpp: Check for exceeding maximum response PDU size, did not check response PDUs only. This bug caused SNMP++ to not send v3 traps.- Fixed: Setting trap OIDs when receiving traps.Changes snmp++v3.0i===================- Fixed: OIDs for snmpAuthProtocols and snmpPrivProtocols- Fixed: Sending of v1 traps did not set IP address of the sending host correctly when the gethostname failed for that host.Changes snmp++v3.0h===================- Fixed: (usm_v3.cpp): Handling of maxMsgSize.- Fixed: (asn1.cpp): BER encoding of ASN.1 header length did not support length above 65535 bytes. Now lengths up to 2^31-1 bytes are supported.- Fixed: (usm_v3.cpp): Did not check length of userName before copying it. Could have caused problems with incorrect SNMPv3 implementations. Changes snmp++v3.0g===================- Fixed: BER encoding of unsigned 64bit integers. High values (all nine most significant bits are 1) were incorrect encoded.- Fixed: Removed compilation warnings for timetick.cpp and integer.cppChanges snmp++v3.0f===================- Fixed: Several DLLOPT decorators had been missing in asn1.h.- Added: Prototype for freeSmivalDescriptor in snmpmsg.h.Changes snmp++v3.0e===================- Fixed: Bug in idea.h.- Fixed: Bug in mp_v3.cpp.Changes snmp++v3.0d===================- Fixed: Bug in Oid::RnCompare()- Fixed: mpIncSnmpUnknownSecurityModels() increased the wrong counter.- Update: The changes of the official SNMP++ 2.84 from HP were merged into snmp++v3.- Changed: The snmpEngineBoots counters for different snmpEntities can now be saved in one file. For this the function mpInit had to be changed. See include/v3.h for more information about the new functions getBootCounter, saveBootCounter and decodeEngineId. Example: char *filename = "snmpv3_boot_counter"; unsigned int snmpEngineBoots = 0; OctetStr engineId("exampleId"); // you may use your own methods to load/store this counter status = getBootCounter(filename, engineId, snmpEngineBoots); if ((status != SNMPv3_OK) && (status < SNMPv3_FILEOPEN_ERROR)) cerr << "Error getBootCounter: " << status << endl; snmpEngineBoots++; status = saveBootCounter(filename, engineId, snmpEngineBoots); if (status != SNMPv3_OK) cerr << "Error saveBootCounter: " << status << endl; mpInit(&snmp, engineId, snmpEngineBoots);- Fixed: Reports for encryption error were sent with a securityLevel authPriv, now authNoPriv is used. Reports for unknown security name were sent with user 'initial', now the user name of the request is used.- Fixed: Snmp::trap now sets the timestamp of traps for WIN32 and for non WIN32 to the same value if the user didn't set it with pdu::set_notify_timestamp(). Note: Snmp::trap does not set the timestamp to the uptime of the system or the application. The timestamp is computed from the time elapsed since 1970/1/1.- Fixed: msec::refresh() now sets the correct time for WIN32 - Changed: mpAddToEngineIDTable now replaces host and port when adding an engineID that is already in the table- Fixed: OctetStr::from_hex_string()Changes snmp++v3.0c===================- Fixed: Class Address had no default constructor.- Added: mpIncSnmpUnknownSecurityModels(), mpIncSnmpInvalidMsgs(), mpIncSnmpUnknownPDUHandlers().Changes snmp++v3.0b===================- Fixed: SNMPv3 reports for inform requests are now sent through the socket that is used to listen for traps/informs. - Added the static method CNotifyEventQueue::set_listen_port(int port); to set the trap listen port. Call this method before calling Snmp::notify_register(...). The default port is 162.Changes snmp++v3.0a===================- Internal changes in SNMPv3 implementation- Changes in structures for SNMPv3 async requests- Some documentation added.- Fixed: usmDeleteUserName mixed userName and securityName. Changed parameter of usmDeleteUserName to userName and added new function usmDeleteSecurityName.- Fixed: the SNMP version of targets created through CTarget(const CTarget) was set to version1 (same for operator=(constCTarget))- Changed call of "delete X" to "delete [] X" where necessary- Moved some structure definitions from header files to cpp-files. Changed some internal structures from unsigned char to OctetStr.Changes snmp++v3.0:===================- uxsnmp.cpp: line 656-660 Added WSACleanup() routine for NT.- 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");- Added const to Pdu::get methods where applicable. - Added static function OctetStr::from_hex_string().- Added DLLOPT to all public functions / classes.- Using memset and memcpy instead the deprecated counterparts bzero and bcopy.- Using WinSockets on WIN32 platforms.- When converting an oid string to an oid (Oid::StrToOid) now an arbitrary part of the oid can be given as a string value enclosed in $ characters. For example the oid string "1.3.6.1.6.1.12.1.3.$public0$" will result to the oid 1.3.6.1.6.1.12.1.3.112.117.98.108.105.99.95.48- the function mpInit is now called with a pointer to an Snmp object and an engineID: int mpInit(Snmp *snmp, const OctetStr& snmpEngineID);- New target (UTarget for SNMPv3): - Methods to get/set security_name and security_model: void get_security_name( OctetStr& security_name_oct); void set_security_name( const OctetStr& new_security_name); void set_security_model(int sec_model); int get_security_model(); - If you know the engine_id of the target (no engine_id discovery): void set_engine_id( const OctetStr& new_engine_id); void get_engine_id( OctetStr& engine_id_oct); --> most methods of CTarget do exist for UTaget: see target.h For SNMPv3 there is only one valid security_model (SNMP_SECURITY_MODEL_USM). If you set the security_model to SNMP_SECURITY_MODEL_V1 (or V2) you can use te UTarget to send SNMPv1 (v2c) requests.- New methods for Pdu objects: void set_security_level( const int level); int get_security_level(); void set_context_name(const OctetStr &name); void get_context_name(OctetStr &name); void set_context_engine_id(const OctetStr &id); void get_context_engine_id(OctetStr &id); valid security_levels are: SNMP_SECURITY_LEVEL_NOAUTH_NOPRIV, SNMP_SECURITY_LEVEL_AUTH_NOPRIV and SNMP_SECURITY_LEVEL_AUTH_PRIV- The CTarget can no longer be used as a SNMPv3 target. The methods mpBuildCommunity and mpParseCommunity don't exist any longer.- The consoleExamples now use a CTarget for SNMPv1/v2c requests and UTarget for SNMPv3 requests. There are new examples: snmpInform (to send inform Requests) and receive_trap.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -