📄 changes_agent++v3.txt
字号:
return an error. * Changed default behaviour of MibLeaf::unset(). It now always returns success, because if undo is not set it is assumed that nothing has to be undone. If another (or the old) behaviour is needed the method must be overloaded in a subclass.* OidxRange constructor does not longer sort lower and upper bound. Thus, an upper bound may be specified, that is _less_ than the lower bound. Version 3.3b: CHANGES since Version 3.3a=========================================* Fixed: memory leaks in notification_originator.cpp, snmp_textual_conventions.cpp, and snmp_request.cpp.* Handle SnmpUInt32 as Gauge32 (both use the same ASN.1 tag value). Version 3.3a: CHANGES since Version 3.3========================================* Fixed: SET requests did not fail for non-existing objects. A SET request on a non-existing object now returns noCreation (SNMPv2c, SNMPv3) or noSuchName (SNMPv1).Version 3.3: CHANGES since Version 3.2b========================================* AGENT++v3.3 when compiled with the _SNMPv3 flag needs SNMP++v3.0 (the first non beta release of SNMP++v3). SNMP++v3.0 introduces the UTarget class which AGENT++v3.3 now needs.* Constructors of MibLeaf. The boolean value has_default has been changed to an int value, in order to allow additional standard modes that control the handling of an MibLeaf's value. A new mode (besides has default value or not) has been introduced which determins whether the columnar object may be changed when its row has a rowStatus of active(1), or not.* Constructors of MibTable. Since version 3.3 the index of new rows can be checked more precisly than in earlier versions. Unfortunatly, a new constructor had to be introduced that accepts an array of the index_info structure. This array contains an element for each object in the INDEX clause of a table. Each index_info structure has four members: 1. the type of the index object (e.g., sNMP_SYNTAX_INT) 2. a boolean value that determines whether the (sub-)index has an implied length or not. This may only be specified for the last element in an array of index_infos. 3. the minimum length of the index object meassured in oid sub-identifiers. 4. the maximum length of the index object meassured in oid sub-identifiers. (Note: for constant length index objects like sNMP_SYNTAX_INT or sNMP_SYNTAX_IPADDR min and max are equal and 1 or 4, respectively)* Added support for SNMP-PROXY-MIB and SNMP-COMMUNITY-MIB.* Added support for several SNMP textual conventions defined in the SNMP-FRAMEWORK-MIB.* Various modifications in nearly all MIB implementations of AGENT++ to use the new features and the new textual convention implementations.* Fixed: Oidx::as_string() did not convert zero subidentifiers correctly.Version 3.2b: CHANGES since Version 3.2a=========================================* Native NT support for single threaded, SNMPv1/v2c agents. Thanks to Gary McWilliams, mailto:GMcWilliams@ccc-group.com* Support for simulation agents (AGENTPP-SIM-MIB). Updated the ATM-MIB example to show the new features: Set the simulation mode to config(2) and then set the atmVcCrossConnectIndexNext to a random value. You will see you can set the value, although normally it has a MAX-ACCESS of read-only. If you set the mode to oper(1) you won't be able to set atmVcCrossConnectIndexNext.* Fixed: compiler warnings in vacm.cpp, v3_mib.cpp, snmp_textual_conventions.cpp, snmp_pp_ext.cpp, mib.cpp Version 3.2a: CHANGES since Version 3.2========================================* Calling MibTable::row_delete(..) before removing timed out rows (rows that are notReady for longer than 5 minutes).* Fixed: SegFault when removing obsolete rows (I hope this is the last time I have to fix this beast ;-).* Fixed: Compilation problems with undefined _SNMPv3 AND using SNMP++2.6(e).Version 3.2: CHANGES since Version 3.1c========================================* Added class snmpDisplayString to snmp_textual_conventions.* Added snmpSilentDrops, snmpProxyDrops to snmp_group.* Fixed: GETBULK operation.* Fixed: Several USM and SNMPv3 counters have been of type Integer32 - should be Counter32 instead.* Support of SNMP-MPD-MIB* More precise error handling (snmpInBadVersions, snmpInASNParseErrors, etc.)* SNMP errors like NO_SUCH_OBJECT, BAD_VALUE, WRONG_VALUE, etc. are now v1/v2c/v3 coex document compliant. * Fixed: SnmpAdminString returns WRONG_LENGTH instead of WRONG_VALUE for SET requests trying to set too short or too long admin strings.Version 3.1c: CHANGES since Version 3.1b=========================================* Added the Opaque class to snmp_pp_ext.[h|cpp].* Fixed: List::removeFirst() caused segfault when removing last element of List. Version 3.1b: CHANGES since Version 3.1a=========================================* Fixed: Concurrent creation of more than one row with at least one row creation by createAndGo sometimes created objects that shouldn't had been created.* Fixed: Compilation error about undefined socklen_t on Solaris.* Automatic deletion of unused rows (rows with RowStatus of notReady(3)) must now be explicitly called from the main routine via Mib->cleanup(). Version 3.1a: CHANGES since Version 3.1========================================* Fixed: Compiling SNMP++v3 and AGENT++v3.1 with #undef _SNMPv3 caused compiling and linking errors.Version 3.1: CHANGES since Version 3.03========================================* Replaced collection class for rows of MibTable with a AVL tree based colection class (was double chained list before). This speeds up table lookups - especially for large tables. Attention! If you used OrderedListCursor to traverse the content of a MibTable, you have to change the cursor class to OidListCursor. No other changes are needed, but you may use the new method OidListCursor::lookup(Oidx* key) for very fast positioning the cursor at the first row with an index greater or equal key.* Fixed: Memory leak when destroying a persistent MIB object that could not write its contents to the given file. * Fixed: Trying to set a readonly variable with SNMPv1 returned notWritable -> should return noSuchName.Version 3.03: CHANGES since Version 3.02=========================================* Improved synchronisation concept: Every request runs within its own thread. While looking up the objects involved in the request the MIB registration is locked. Just before the registration is unlocked, the requested object (MibLeaf, MibTable, etc.) is locked. When an MIB object should be unregistered, first the registration is locked and then the object itself. This guarantees that no other thread is running within the object.* Fixed: GETNEXT at end of mib view returned wrong error index.* Fixed: Writing read-only objects returned noAccess instead of notWriteable. Version 3.02: CHANGES since Version 3.01========================================= * The CMD-EXECUTION-MIB implementation replaces the ctrl-mib example.* Updated MibProxy: can now be used to proxy v1/v2c to v1/v2c/v3 using the USM/VACM. Thus you can use the whole bunch of security mechanisms of v3 for "old" v1/v2c agents. * Fixed: MibTable::could_ever_be_managed() did not accept variable table indexes of length 2.* Fixed: SNMP-TARGET-MIB: snmpTargetAddrTDomain could not be set.* Fixed: With v3 support activated read/write/notify v1/v2c communities can now be set using the USM and VACM only.* Fixed: Terminating an agent sometimes caused a segmentation fault in ~Mib().* Fixed: MIB II SNMP counter of incoming packets did not count any packets.Version 3.01: CHANGES since Version 3.0======================================== * Interface MibTable::ready_for_service(Vbx** pvbs, int sz) changed to MibTable::ready_for_service(Vbx* pvbs, int sz)* Fixed: MibProxy::commit_set_request() caused segmentation fault. (Patch provided by Mohammed-Ali Munir, Ericsson)* Fixed: SnmpRequest::process() now sets the write community for SET requests correctly. * Fixed: MibLeaf::unset() caused segmentation fault.* Implementation of the SNMP-TARGET-MIB and SNMP-NOTIFICATION-MIB (including a notification originator class using those MIBs).Version 3.0: CHANGES since Version 2.11========================================* NEW! SNMPv3 support. Changes are are enclosed in "#ifdef _SNMPv3".* Snmpx no longer overrides Snmp::snmp_engine and Snmp::MyMakeReqID. * Fixed: User created rows in MibTables with snmpRowStatus had disappered (an event log of level 2 was generated) although their rowStatus had been set to notInService or active within 5 minutes. This situation was very unlikely, but could have been happen. Now only rows that are notReady for a minimum of 5 minutes will be deleted (now a WARNING log of level 2 is generated if such a row is removed)* MibTable::find, MibTable::find_next interface changed and reimplemented, MibTable::find_prev added. Fixed GETNEXT bug (former version returned END_OF_MIBVIEW, if an oid between two objects of a column had been requested) * Fixed: auto_index_generation now works again also for scalar columns.* Fixed: Removing of unused rows caused segmentation fault.Version 2.11: CHANGES since Version 2.1========================================* ready_for_service now calls MibLeaf::value_ok() in order to check the values of the columnar objects of a row.* SnmpRequest::getbulk and SnmpRequest::gettable added. * Added ATM-MIB example. The source code atm_mib.h and atm_mib.C has been generated automatically from the ATM-MIB (RFC1695). See http://fock.de/frank/english/agent++src/index.html for how you can obtain such generated files for your MIB. Version 2.1: CHANGES since Version 2.02========================================* Added automatic index generation for MibTables with Oid or OctetStr index column. Changed the Ctrl-Mib example to use the new feature.* Fixed: Authentication failure response PDU type is now sNMP_PDU_RESPONSE. * AgentX compatibility enhancements: - simplified multi-threading - support for 2PC SNMP SET request processing. Now the methods int commit_set_request(Request*, int) int prepare_set_request(Request*, int&) should return an error code. Additionally the following two virtual functions have been added to MibEntry: int undo_set_request(Request*, int&) void cleanup_set_request(Request*, int&) The MibLeaf::commit_set_request now saves MibLeaf::value before committing. The commit can then be undone by calling MibLeaf::undo_set_request, before MibLeaf::clean_up_request is called. Version 2.02: CHANGES since Version 2.01a=========================================* Fixed: compiling without _THREADS didn磘 work.* Added trapDestGroup containing trapDestTable and trapDestIndexNext, which support the (de)registration of trap destinations and sending them depending on the registrated destinations.Version 2.01a: CHANGES since Version 2.01=========================================* Fixed: rows of SNMP tables with RowStatus that do not implement their own ready_for_service method could not have been set active. Version 2.01: CHANGES since Version 2.0=======================================* Minor makefile (examples) and source code changes (mib.C) to improve Digital Unix support.Version 2.0: CHANGES since Version 1.01=======================================* Support for GETBULK operation (SNMPv2c only). Each GETBULK operation is executed as an extra thread if multi-threading is turned on. * Multi-processing replaced by pthreads. The methods ::update(...), ::result(...), Mib::busy(), and Mib::process_updates() as well as the class Thread have been completely removed. The class ThreadManager is totally different to version 1.01.* A lot of internal changes to support multi-threading using pthreads.* Extra constructors for MibEntry, MibLeaf and MibTable to activate multi-threaded execution of method routines (see the AGENT++ documentation for details).* Added more details to the Controlled MIB (ctrl-mib) example Version 1.01: CHANGES since Version 1.0=======================================* GETNEXT bug fixed (in rare cases instead returning the next managed object, its successor has been returned).* Makefile supports shared libs.* Now the returned value if "end of mib" is reached is fully SNMPv1 compatible (if the incoming request磗 version has been SNMPv1).* Some minor changes of the debugging log messages.* The Pix.h file is no longer needed and has been removed from the AGENT++ package.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -