CHANGES.snmp++v3
上传用户:cnryan
上传日期:2008-12-15
资源大小:260k
文件大小:28k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

  1. Changes snmp++v3.2.21
  2. =====================
  3. - Added: New overloeaded Oid::set_data() that takes a char array instead
  4.   of ulong array.
  5. - Fixed: The dotted oid string parser no longer accepts strings like
  6.   "1.3.6.$public", "1.3.6$public$" or "1.3.6.$public$1".
  7. - Fixed: Removed a lot of compiler warnings on Windows x64 (with help of
  8.   Sanjay Bhatia). Introduced new type for sockets (SnmpSocket), and
  9.   removed SNMPHANDLE type.
  10. - Changed: Removed global mutex for v3MP and USM.
  11. - Fixed: sockets were not closed if bind failed. (found from John McCaskey)
  12. - Fixed: Engine id discovery did not work when sending SNMPv3 request
  13.   to IPv4 Address over IPv6 socket.
  14. - Fixed: For async SNMPv3 requests that resulted always in a unknown
  15.   engine id or not in time report from the agent the Snmp class continued
  16.   to resend a request to the agent.
  17. - Fixed: USM was not thread safe (found from John McCaskey):
  18.   Changing users from two different threads or changing users
  19.   while messages of these users are processed could cause
  20.   segmentation faults. The following functions of USM now behave
  21.   different than before or require calls to new functions:
  22.   all three get_user() functions, peek_first_user(), peek_next_user(),
  23.   peek_first_luser(), peek_next_luser(), get_user_count().
  24.   If you use any of these functions, read the new documentation in
  25.   usm_v3.h and change your code (like it was done for the QtExample).
  26. - Changed: The functions to set/get the trap listen port of
  27.   CNotifyEventQueue ar no longer static. Use the new functions
  28.   Snmp::notify_set/get_listen_port() instead.
  29. - Removed: Old X11 code, user defined events and timeouts.
  30. - Improved: Counter64 now uses 64 bit integer for math
  31.   operations, instead of long double. 
  32. - Fixed: Zero length UDP packets will no longer trigger
  33.   a transport-level-failed callback.
  34. Changes snmp++v3.2.20a
  35. ======================
  36. - Improved: Detect too large received messages.
  37. - Improved: Removed hard coded limit for max number of Vbs
  38.   (PDU_MAX_VBS) in a Pdu object.
  39. - Fixed: Bug in SNMPv3 encryption code which will lead to a
  40.   crash after a random number of encryptions (Stuart Marks).
  41. - Improved: Compilation of address.cpp for Solaris.
  42. Changes snmp++v3.2.19
  43. =====================
  44. - Fixed: Requests with nonzero but wrong security engine id
  45.   now result in a unknown engine id report.
  46. - Added: New functions USM::add_usm_user() and
  47.   new functions to remove engine ids and hosts from
  48.   the v3MP and USM tables.
  49. - Changed: command line arguments of consoleExamples.
  50. Changes snmp++v3.2.18
  51. =====================
  52. - Added: Privacy protocol 3DES. The Auth/Priv interface was
  53.   modifed. (based on patch from Pierre Pacchioni)
  54. - Fixed: Possible memory leak in mp_v3.cpp v3MP::snmp_parse(..).
  55. - Fixed: Uninitialized variable in asn1.cpp asn_parse_length(..).
  56. - Fixed: Uninitialized variables in snmpmsg.cpp 
  57.   SnmpMessage::unload when v3MP::I->snmp_parse() fails.
  58.   (Reported by Rob Crawford)
  59. - Changed: ID of privacy protocol AES128 now is 4
  60.   as required by the RFC.
  61. - Fixed: Vb::get_value(ptr, len, maxlen) may write
  62.   maxlen+1 bytes into ptr buffer (Daniel Suman).
  63.   This function now is  Vb::get_value(ptr, len, maxlen,
  64.   add_null_byte) where the default for add_null_byte
  65.   is false.
  66. - Improved: Workaround for Cisco SNMP agents that set
  67.   request ids to 0x7fffffff in report messages.
  68. - Fixed: Make auth_priv.h/cpp compile if both OpenSSL and
  69.   LibTomCrypt are defined.
  70. - Added: Basic support for VxWorks with PPC603 (Thanks to
  71.   Lee Noll).
  72. Changes snmp++v3.2.17
  73. =====================
  74. - Changed: Updated auth_priv.cpp for LibTomCrypt 1.02
  75. - Changed: Moved logging classes from agent++ into
  76.   snmp++. (Fedja Jeleskovic)
  77.   Function debug_set_logfile() has been removed, use
  78.   DefaultLog::init(new AgentLogImpl("filename")) and
  79.   DefaultLog::log()->set_filter() instead.
  80.   All logging within snmp++ will be moved to the LOG_XXX
  81.   macros and the debugprintf() function will be removed.
  82. - Changed: Renamed "#ifdef alpha" to "#ifdef __osf__". When
  83.   compiling for DigitalUnix/Tru64 make sure, that __osf__
  84.   is defined.
  85. Changes snmp++v3.2.16
  86. =====================
  87. - Improved: notify_register() now returns correct error codes.
  88. - Added: Snmp::start_poll_thread() that starts a new thread
  89.   that polls for async responses and informs/traps. The thread
  90.   will be stopped automatically in the destructor. It also can
  91.   be stopped using Snmp::stop_poll_thread(). (Fedja Jeleskovic)
  92. - Added: New transport layer error code
  93.   SNMP_CLASS_TL_ACCESS_DENIED for (errno == EACCES)
  94. - Improved: new define SNMP_PP_MUTABLE that can be
  95.   defined to mutable for compilers that support
  96.   mutable member variables.
  97. - Changed: renamed OctetStr::set_hex_np_char() to
  98.   set_np_char()
  99. - Improved: get_printable() will return the same buffer
  100.   for each call if the object wasn't changed.
  101. - Added: Pdu::get_max_vbs() to get the value of
  102.   PDU_MAX_VBS at runtime.
  103. - Fixed: Bug in snmperrs.h (Jason Olenhouse)
  104. Changes snmp++v3.2.15
  105. =====================
  106. - Fixed: Bug in asn1.cpp for systems where
  107.   sizeof(long) != sizeof(*long) (Hu Shu)
  108. - Fixed: timeout calculation in
  109.   EventListHolder::SNMPProcessEvents() (Xu Manjiang)
  110. - Fixed: OctetStr::clear() now sets the length to
  111.   zero (Mr. AWD)
  112. - Fixed: Set sin_len of struct sockaddr_in before calling
  113.   bind(). Define CYGPKG_NET_OPENBSD_STACK to enable it.
  114.   (Harald Kuethe)
  115. - Changed: Pdu class checks Vb validity after all
  116.   assignments. It is no longer possible to add
  117.   a Vb that is not valid.
  118.   Some set/get member functions now return bool
  119.   instead of void.
  120. Changes snmp++v3.2.14
  121. =====================
  122. - Improved: Return value of Pdu functions 
  123.   get/set_notify_id and get/set_notify_enterprise. 
  124.   (Marek Malowidzki)
  125. - Fixed: Check return value of new in
  126.   SnmpCollection::operator+=() (Marek Malowidzki)
  127. - Fixed: Setting a byte with Address::operator[] will
  128.   set validity of the object to true.
  129. - Improved: Behaviour of OctetStr::get_printable() for
  130.   non printable strings can now be configured.
  131. Changes snmp++v3.2.13a
  132. ======================
  133. - Fixed: Version info was not updated.
  134. - Fixed: Compilation problems with _NO_SNMPv3
  135. - Changed: The user "initial" is no longer automatically
  136.   added to the USM.
  137. - Fixed: Oid class freed memory twice after
  138.   failed call to operator+=().
  139. - Added: Support for AIX 5 (by courtesy of
  140.   Anders Malmborg)
  141. Changes snmp++v3.2.12a
  142. ======================
  143. - Fixed: wrong encryption/decryption for
  144.   DES and IDEA.
  145. - Fixed: consoleExamples can use IPv6.
  146. - Fixed: Do not accept illegal lengths for
  147.   authentication parameters.
  148. - Removed: Obsolete XExample.
  149. - Fixed: Compilation problem in address.cpp
  150.   if __sun is defined (Kostas Lykiardopoulos)
  151. - Improved: Modified constructor of Snmp class
  152.   to allow binding to IPv6 socket.
  153. - Added: AES can now be used with OpenSSL.
  154. - Improved: Compilation under Tru64.
  155. - Fixed: Return code of delete_entry and 
  156.   delete_entries in class USMUserTable returned
  157.   SNMPv3_MP_OK instead SNMPv3_USM_OK.
  158. Changes snmp++v3.2.11
  159. =====================
  160. - Improved: Declared some methods as const
  161.   (Marek Malowidzki).
  162. - Improved: Use shortest possible encoding for
  163.   serializing SNMP messages to improve compatibility
  164.   with buggy/broken SNMP-Tools (Henning Eggers).
  165. - Fixed: Compilation problems on SUN
  166.   (Fabrice Bacchella)
  167. - Improved: declared some methods as const
  168. - Improved: Moved the headers to include/snmp_pp/
  169.   to avoid name colissions.
  170. - Improved: QtExample can receive traps/informs.
  171. - Fixed: Compilation problems with BC++ 5.0
  172.   (Vinoth, Christian Cheney)
  173. - Improved: Added namespace Snmp_pp (Sorin C.)
  174. Changes snmp++v3.2.10a
  175. ======================
  176. - Changed: Added two defines _USER_DEFINED_EVENTS
  177.   and _USER_DEFINED_TMEOUTS (enabled by default)
  178.   to switch off the user defined event/timeout queues.
  179. - Improved: Added const to various functions and
  180.   function arguments (Marek Malowidzki)
  181. - Fixed: Added missing DLLOPTs in msec.h (Christian Cheney).
  182. - Improved: The v3MP uses the Snmp object that received
  183.   the message for sending out report messages (needed
  184.   for systems with multiple IP addresses).
  185.   The constructor of the v3MP class was changed, as
  186.   the pointer to the Snmp object is no longer needed
  187.   at construction time.
  188. - Changed: Snmp::notify_register() no longer binds
  189.   to all interfaces, but to the address specified
  190.   in the constructor of the Snmp object.
  191. Changes snmp++v3.2.9d
  192. =====================
  193. - Improved: Removed usage of some multi-threading 
  194.   critical C routines (for example strtok). Although
  195.   on many systems, these routines are multi-threading
  196.   safe, this may not be true for some systems. 
  197. - Fixed: High CPU usage in SNMPProcessEvents() on
  198.   Win32 platform.
  199. - Fixed: SNMPv1 trap sysUpTime TimeTicks where not
  200.   decoded correctly as unsigned integer value, resulting
  201.   in a parse error when sysUpTime > 2^31-1.
  202. - Improved: Log levels.
  203. - Fixed: USMUserNameTable::add_entry() did not update
  204.   the privacy password length.
  205. - Improved: Examples now use the 
  206.   Snmp::socket_startup() on Win32 platforms.
  207. - Added: Two static methods Snmp::socket_startup() and
  208.   Snmp::socket_cleanup() that initialize/cleanup
  209.   Winsock library on WIN32 and do nothing for
  210.   other platforms. The startup method must be
  211.   called before creating Snmp or Address objects.
  212. - Changed: Type of some vars in UsmUserNameTableEntry
  213.   from uchar* to OctetStr. Check if your code uses 
  214.   this struct.
  215. - Changed: engineBoots and engineTime are set to 0 for
  216.   SNMPv3 noAuthNoPriv messages.
  217. Changes snmp++v3.2.8
  218. ====================
  219. - Added: Support for OpenSSL.
  220. - Fixed: Compile problem in uxsnmp.cpp. 
  221. Changes snmp++v3.2.7c
  222. =====================
  223. - Fixed: Synchronization problem with mpV3::Cache.
  224.   (Henning Eggers)
  225. - Fixed: Memory leak in OctetStr::from_hex_string.
  226.   (Kent Gibson)
  227. - Changed: EventListHolder::SNMPProcessEvents() 
  228.   param is now in milliseconds (was seconds).
  229. - Fixed: Memory leak if an async SNMPv3 message timed
  230.   out (Henning Eggers).
  231. - Added: Method Snmp::broadcast_discovery() to do
  232.   SNMP broadcast discovery. 
  233. - Improved: Console examples now accept 0 retries,
  234.   removed warnings with gcc 3.2, and v3MP is now
  235.   always created.
  236. - Added: Qt 3.1 example that demonstrates SNMP++v3
  237.   usage with a GUI (Trolltechs Qt 3.1).
  238. - Added: Methods to store, load, and query USM users.
  239. - Improved: Some minor clean-ups.
  240. Changes snmp++v3.2.6b
  241. =====================
  242. - Fixed: GenAddress passed IPv4 addresses as IPv6 
  243.   addresses.
  244. - Changed: By default IDEA is not compiled into 
  245.   SNMP++ by default because patent licensing is
  246.   required for commercial use. Please #define 
  247.   _USE_IDEA if you want to compile IDEA into SNMP++.
  248.   For more details please read also README.v3.
  249. - Fixed: Do not add -Dsun to compile command. If
  250.   you have problems with the SnmpCollection template
  251.   look at the instructions in collect.h. 
  252. - Fixed: Destroy Mutex in ~EventListHolder(). 
  253. - Improved: Lots of cleanups for the address classes.
  254.   This leads to the following incompatibilities to 
  255.   former versions:
  256.   + Enums addr_type and version_type are now inside
  257.     class Address
  258.   + MacAddress, IpxAddress and IpxSockAddress are no
  259.     longer included by default, but can be enabled
  260.     in config_snmp_pp.h 
  261. Changes snmp++v3.2.5d
  262. =====================
  263. - Improved: Made AuthMD5::password_to_key more
  264.   robust against empty passwords.
  265. - Changed: The Win32 DLL export macros now use
  266.   SNMP_PP_DLL instead _USRDLL.
  267. - Changed: Moved VC++ project files in a 
  268.   separate package. 
  269. - Improved: Minor issues with IPv6 support.
  270. - Improved: Socket handling.
  271. - Fixed: uxsnmp.cpp: Detecting error from socket()
  272.   return values.
  273. - Fixed: Moved SNMPAddInput() SNMPRemoveInput()
  274.   SNMPAddTimeout and SNMPREmoveTimeout to the
  275.   class EventListHolder
  276. - Fixed: Unique Id generation in CUDEventQueue and
  277.   CUTEventQueue.
  278. - Fixed: Bugs in Vb::get_value() methods that take a
  279.   char* or unsigned char* as argument
  280. - Added: operator+() for Oids (Alexander Gutkin)
  281. - Improved: Cleanups in queues 
  282. Changes snmp++v3.2.4a
  283. =====================
  284. - Improved: Synchronous and asynchronous SNMP
  285.   request processing is now separated. Thus,
  286.   the global event lists have been removed. 
  287.   Each Snmp class now holds its own event 
  288.   lists.
  289.   To eliminate the use of global event lists
  290.   a new class EventListHolder was defined. Two
  291.   new files eventListHolder.h and 
  292.   eventListHolder.cpp contain now declaration
  293.   and definition of that class respectively.
  294.   That new class is a container of former
  295.   eventList global data structure and former
  296.   global user defined events, user-defined 
  297.   timeouts, notifications and all outstanding
  298.   messages. (LiorK)
  299. - Improved: collect.h (Bill McKinnon)
  300. - Improved: FreeBSD 5.0 support.
  301. - Added: Makefile.gcc_solaris for compilation
  302.   with GNU C++ compiler on Solaris.
  303. Changes snmp++v3.2.3b
  304. =====================
  305. - Fixed: Counter64::get_printable() could print
  306.   negative values (Yakov Y.)
  307. - Note: New Makefiles assume that you have
  308.   defined _USE_LIBTOMCRYPT when a "crypt"
  309.   directory is present in the same folder as
  310.   the "snmp++" and "agent++" directories. 
  311. - Fixed: Compilation problems without _SNMPv3
  312.   defined.
  313. - Fixed: PDU length computation for encrypted
  314.   SNMPv3 PDUs.
  315. - Improved: New v3MP class.
  316. - Fixed: Estimated length calculation for 
  317.   encoded PDU.
  318. Changes snmp++v3.2.2d
  319. =====================
  320. - Fixed: Possible timeouts under heavy load
  321.   in a multi-threaded environment. 
  322.   [Pavel Spakovsky]
  323. - Fixed: DLL support for VC++ did not allow
  324.   static linking.
  325. - Added: Computation of BER encoded length of
  326.   a Pdu. 
  327. - Added: VC++.NET project files and fixed DLL
  328.   support.
  329. - Fixed: Errors in Counter64::c64_to_ld() and
  330.   Counter64::ld_to_c64() [Mikhail Evstiounin]
  331. - Improved: Prepared for AES usage replacing
  332.   libDES. 
  333. - Fixed: Compilation problems with G++3.2
  334.   (needs updated libDES download).
  335. Changes snmp++v3.2.1d
  336. =====================
  337. - Fixed: Memory leak (40 bytes) when adding an
  338.   user to usm.
  339. - Improved: Some cleanups (#include, const).
  340. - Fixed: Due to possible race condition in
  341.   MyMakeReqId() (uxsnmp.cpp) two requests could
  342.   get the same request id. 
  343. - Fixed: const casting caused problems with
  344.   AIX compiler.
  345. Changes snmp++v3.2.1
  346. ====================
  347. - Improved: Use zero length user name for
  348.   SNMPv3 discovery.
  349. - Lots of cleanups.
  350. Changes snmp++v3.2a
  351. ===================
  352. - Fixed: Compilation problem with address.cpp on
  353.   Solaris. 
  354. Changes snmp++v3.2
  355. ==================
  356. - Added: IPv6 support.
  357. - Improved: moved the USM functions into the class
  358.   USM. To add or delete users, you will now have to
  359.   do the following (see usm_v3.h for more details):
  360.      Usm *usm = mpGetUsm();
  361.      usm->add_usm_user(...);
  362.      usm->delete_usm_user(...);
  363. - Fixed: Possible SegFault in notify queue
  364.   (Lior Klibansky)
  365. - Fixed: Timeout problem in event list (Don Dietz)
  366. - Fixed: Don't use isdigit() for BCC (Eric Zerbib)
  367. - Added: clear() method to SnmpCollection
  368. - Fixed: added clone() method to Pdu class, so
  369.   SnmpCollection<Pdu> will work again.
  370. - Added: Make notify socket decriptor available in
  371.   Snmp class (Don Dietz)
  372. Changes snmp++v3.1.6c
  373. =====================
  374. - Fixed: mp_v3.cpp: Unsigned integer values were
  375.   not BER decoded correctly for SNMPv3 messages.
  376. - Fixed: Some errors when compiling with -ansi
  377. - Improved: Class AuthPriv does no longer depend
  378.   on USM. 
  379. Changes snmp++v3.1.6b
  380. =====================
  381. - Added: BCC32 support.
  382. - Added: DLLOPT decoration for debugprintf.
  383. Changes snmp++v3.1.6a
  384. =====================
  385. - Fixed: Agent address of v1 trap PDUs is set from
  386.   received SNMPmessage if address is not "0.0.0.0".
  387. - Improved: Free BSD support.
  388. - Improved: UdpAddress performance.
  389. - Added: Pdu::set_v1_trap_address to set v1
  390.   trap address. If not set, SNMP++ will use the
  391.   default host address.
  392. - Improved: Added casts in auth_priv.cpp and 
  393.   idea.cpp.
  394. Changes snmp++v3.1.5
  395. ====================
  396. - Fixed: Memory leak during processing of
  397.          SNMPv3 traps
  398. - Fixed: Memory leak in agents when sending a
  399.          UnknownEngineID report
  400. - Fixed: Set contextEngineId in Pdu if it was
  401.          not set by the user.
  402. - Improved: Prepared authentication/privacy module
  403.             for easy extensibility.
  404. - Fixed: Convert asn1.cpp back to unix CR/LF ;-)
  405. Changes snmp++v3.1.4b
  406. =====================
  407. - Fixed: Possible crash in ASN.1 BER decoding 
  408.   caused by incorrect SNMP BER encodings.
  409. Changes snmp++v3.1.4a
  410. =====================
  411. - Fixed: Compilation problems with non Linux
  412.   systems regarding *_r system calls.
  413. - Fixed: Handling of unusual v3 msgFlags and
  414.   msgSecurityModels.
  415. Changes snmp++v3.1.4
  416. ====================
  417. - Added: Support for Opaque type. The Opaque
  418.   type is implemented as OpaqueStr as subclass
  419.   of OctetStr.
  420. Changes snmp++v3.1.3i
  421. =====================
  422. - Fixed: ASN.1 encoding of very long OIDs
  423.   (128 subidentifiers) could cause seg.fault.
  424. - Improved: Removed obsolete #includes and
  425.   comments. 
  426. Changes snmp++v3.1.3h
  427. =====================
  428. - Fixed: Compilation problems introduced by 
  429.   debugging output redirection on Solaris.
  430. - Added: Makefile.hpux11 for HPUX11 aCC.
  431. - Improved: ASN.1 decoding of integers.
  432. - Fixed: Sending SNMP requests form within
  433.   asynchronous callback functions.
  434. Changes snmp++v3.1.3g
  435. =====================
  436. - Fixed: ASN.1 parse error when parsing some 
  437.   unsigned integers introduced in v3.1.3c.
  438. - Fixed: Completed work on redirecting debugging
  439.   output. 
  440. Changes snmp++v3.1.3f
  441. =====================
  442. - Improved: SNMP++ is no longer busy looping
  443.   when waiting for synchronous requests.
  444.   (Changed select timeout in ProcessPendingEvents 
  445.    in eventlist.cpp from 0 to 10 usec).
  446. - Improved: Debugging output can now be 
  447.   redirected to a file.
  448. Changes snmp++v3.1.3e
  449. =====================
  450. - Fixed: Dropped v1 traps because of a wrongly
  451.   detected ASN.1 parse error.
  452. - Fixed: Wrongly added trap oid and timestamp
  453.   variable bindings for received notifications.
  454. - Added: _NO_THREADS in config.h to facilitate
  455.   disabling of threads (contributed by Martin 
  456.   Janzen).
  457. Changes snmp++v3.1.3d
  458. =====================
  459. - Fixed: Traps sent out may had wrong security
  460.   level noAuthNoPriv.
  461. Changes snmp++v3.1.3c
  462. =====================
  463. - Fixed: Missing type checks in BER decoding
  464.   have been added.
  465. Changes snmp++v3.1.3b
  466. =====================
  467. - Fixed: A pdu with an unknown engineId report 
  468.   was overwritten by a second pdu with an 
  469.   unknown message id status when they both were
  470.   send from a multi-homed agent that sends 
  471.   responses not only from one source address.
  472. - Fixed: User name returned by agent in error
  473.   conditions did not match configured user by
  474.   command generator in some cases.
  475. Changes snmp++v3.1.3a
  476. =====================
  477. - Fixed: Bugs related Solaris 64bit support.
  478. - Fixed: Handling of the OPAQUE syntax in
  479.   snmpmsg.cpp.
  480. Changes snmp++v3.1.3
  481. ====================
  482. - Fixed: Now using reentrant system functions
  483.   like gethostbyname_r, gethostbyaddr_r, and 
  484.   strtok_r.
  485. - Fixed: Command line parameter handling of
  486.   the consoleExamples.
  487. - Fixed: MyMakeReqID did not locked its call to
  488.   snmpEventList->GetEntry against other threads.
  489. - Fixed: Locking for eventlist.cpp
  490. - Added: Remove operation in SnmpCollection 
  491.   template.
  492. Changes snmp++v3.1.2a
  493. =====================
  494. - Target::get_type() is now const.
  495. - Improved: Trap receiver example.
  496. Changes snmp++v3.1.2
  497. ====================
  498. - Fixed: Handling of responses to INFORM-requests.  
  499. Changes snmp++v3.1.1
  500. ====================
  501. - Fixed: Added locking for SNMPv3 MP cache. 
  502. - Improved: AGENT++ is no longer needed for console
  503.   examples.
  504. - Fixed: SNMP version was not set for received 
  505.   notifications.
  506. Changes snmp++v3.1
  507. ==================
  508. - Replaced RSAEURO by LIBDES which is free even for
  509.   commercial use.
  510. Changes snmp++v3.0.2b
  511. =====================
  512. - Added: Snmpx::Snmpx(int&, const UdpAddress&) to 
  513.   support binding on a specific IP address.
  514. Changes snmp++v3.0.2a
  515. =====================
  516. - Fixed: Filtering notifications.
  517. Changes snmp++v3.0.2
  518. ====================
  519. - Fixed: Compilation problems when using async requests
  520.   on Win32 platforms.
  521. - Improved: In v3.0.1 pending requests could block 
  522.   requests from other threads. This has been fixed. 
  523. Changes snmp++v3.0.1
  524. ====================
  525. - Added: SNMP++v3.0.1 is now thread-safe! 
  526. - Added: Snmp::report can send SNMPv3 reports. 
  527. Changes snmp++v3.0n
  528. ===================
  529. - Added: SNMP++ sets the contextEngineID of a SNMPv3
  530.   PDU if it is not set by the user.
  531. Changes snmp++v3.0m
  532. ===================
  533. - Fixed: Removed all deprecated #include <values.h>. 
  534. - Fixed: Solaris makefile for Solaris 7.0 (removed 
  535.   Templates.DB related stuff)
  536. Changes snmp++v3.0l
  537. ===================
  538. - Fixed: Entries added to the SNMP++ usmUserTable during
  539.   discovery did not appear in the AGENT++ USM MIB.
  540. Changes snmp++v3.0k
  541. ===================
  542. - Fixed: Setting a usmOwnKeyChange object with a zero 
  543.   length string caused a segmentation fault.
  544. - Fixed: Compilation problems with BSD Unix.
  545. - Fixed: Renaming of snmpv3BootCounter file on WinNT.
  546. Changes snmp++v3.0j
  547. ===================
  548. - Fixed: snmpmsg.cpp: Check for exceeding maximum 
  549.   response PDU size, did not check response PDUs only.
  550.   This bug caused SNMP++ to not send v3 traps.
  551. - Fixed: Setting trap OIDs when receiving traps.
  552. Changes snmp++v3.0i
  553. ===================
  554. - Fixed: OIDs for snmpAuthProtocols and snmpPrivProtocols
  555. - Fixed: Sending of v1 traps did not set IP address of
  556.   the sending host correctly when the gethostname failed
  557.   for that host.
  558. Changes snmp++v3.0h
  559. ===================
  560. - Fixed: (usm_v3.cpp): Handling of maxMsgSize.
  561. - Fixed: (asn1.cpp): BER encoding of ASN.1 header
  562.   length did not support length above 65535 bytes. Now 
  563.   lengths up to 2^31-1 bytes are supported.
  564. - Fixed: (usm_v3.cpp): Did not check length of userName
  565.   before copying it. Could have caused problems with
  566.   incorrect SNMPv3 implementations.
  567.  
  568. Changes snmp++v3.0g
  569. ===================
  570. - Fixed: BER encoding of unsigned 64bit integers.
  571.   High values (all nine most significant bits are 1) were 
  572.   incorrect encoded.
  573. - Fixed: Removed compilation warnings for timetick.cpp and
  574.   integer.cpp
  575. Changes snmp++v3.0f
  576. ===================
  577. - Fixed: Several DLLOPT decorators had been missing in asn1.h.
  578. - Added: Prototype for freeSmivalDescriptor in snmpmsg.h.
  579. Changes snmp++v3.0e
  580. ===================
  581. - Fixed: Bug in idea.h.
  582. - Fixed: Bug in mp_v3.cpp.
  583. Changes snmp++v3.0d
  584. ===================
  585. - Fixed: Bug in Oid::RnCompare()
  586. - Fixed: mpIncSnmpUnknownSecurityModels() increased the
  587.          wrong counter.
  588. - Update: The changes of the official SNMP++ 2.84 from HP were
  589.           merged into snmp++v3.
  590. - Changed: The snmpEngineBoots counters for different
  591.            snmpEntities can now be saved in one file. For this
  592.            the function mpInit had to be changed. See
  593.            include/v3.h for more information about the new functions
  594.            getBootCounter, saveBootCounter and decodeEngineId.
  595.            Example:
  596.            char *filename = "snmpv3_boot_counter";
  597.            unsigned int snmpEngineBoots = 0;
  598.            OctetStr engineId("exampleId");
  599.            // you may use your own methods to load/store this counter
  600.            status = getBootCounter(filename, engineId, snmpEngineBoots);
  601.            if ((status != SNMPv3_OK) && (status < SNMPv3_FILEOPEN_ERROR))
  602.              cerr << "Error getBootCounter: " << status << endl;
  603.            snmpEngineBoots++;
  604.            status = saveBootCounter(filename, engineId, snmpEngineBoots);
  605.            if (status != SNMPv3_OK)
  606.              cerr << "Error saveBootCounter: " << status << endl;
  607.            mpInit(&snmp, engineId, snmpEngineBoots);
  608. - Fixed: Reports for encryption error were sent with a
  609.          securityLevel authPriv, now authNoPriv is used.
  610.          Reports for unknown security name were sent with
  611.          user 'initial', now the user name of the request
  612.          is used.
  613. - Fixed: Snmp::trap now sets the timestamp of traps for WIN32
  614.          and for non WIN32 to the same value if the user didn't
  615.          set it with pdu::set_notify_timestamp().
  616.          Note: Snmp::trap does not set the timestamp to the
  617.          uptime of the system or the application. The timestamp
  618.  is computed from the time elapsed since 1970/1/1.
  619. - Fixed: msec::refresh() now sets the correct time for WIN32 
  620. - Changed: mpAddToEngineIDTable now replaces host and port
  621.            when adding an engineID that is already in the table
  622. - Fixed: OctetStr::from_hex_string()
  623. Changes snmp++v3.0c
  624. ===================
  625. - Fixed: Class Address had no default constructor.
  626. - Added: mpIncSnmpUnknownSecurityModels(),
  627.  mpIncSnmpInvalidMsgs(),
  628.  mpIncSnmpUnknownPDUHandlers().
  629. Changes snmp++v3.0b
  630. ===================
  631. - Fixed: SNMPv3 reports for inform requests are now sent
  632.          through the socket that is used to listen for
  633.          traps/informs. 
  634. - Added the static method
  635.   CNotifyEventQueue::set_listen_port(int port);
  636.   to set the trap listen port. Call this method before calling
  637.   Snmp::notify_register(...). The default port is 162.
  638. Changes snmp++v3.0a
  639. ===================
  640. - Internal changes in SNMPv3 implementation
  641. - Changes in structures for SNMPv3 async requests
  642. - Some documentation added.
  643. - Fixed: usmDeleteUserName mixed userName and securityName.
  644.          Changed parameter of usmDeleteUserName to userName
  645.          and added new function usmDeleteSecurityName.
  646. - Fixed: the SNMP version of targets created through 
  647.          CTarget(const CTarget) was set to version1
  648.          (same for operator=(constCTarget))
  649. - Changed call of "delete X" to "delete [] X" where necessary
  650. - Moved some structure definitions from header files to cpp-files.
  651.   Changed some internal structures from unsigned char to OctetStr.
  652. Changes snmp++v3.0:
  653. ===================
  654. - uxsnmp.cpp: line 656-660
  655.   Added WSACleanup() routine for NT.
  656. - smi.h: line 141
  657.   Changed ASN.1 tag value of UInt32 to 2 (same as Gauge32)
  658.   #define sNMP_SYNTAX_UINT32    sNMP_SYNTAX_GAUGE32
  659.   removed duplicate case labels in asn1.cpp, snmpmsg.cpp and gauge.cpp
  660. - snmpmsg.cpp: line 355
  661.   Changed snmpTrapOID to
  662.    tempvb.set_oid("1.3.6.1.6.3.1.1.4.1.0");
  663. - Added const to Pdu::get methods where applicable. 
  664. - Added static function OctetStr::from_hex_string().
  665. - Added DLLOPT to all public functions / classes.
  666. - Using memset and memcpy instead the deprecated counterparts 
  667.   bzero and bcopy.
  668. - Using WinSockets on WIN32 platforms.
  669. - When converting an oid string to an oid (Oid::StrToOid) now an
  670.   arbitrary part of the oid can be given as a string value enclosed in
  671.   $ characters. For example the oid string
  672.   "1.3.6.1.6.1.12.1.3.$public0$" 
  673.   will result to the oid
  674.   1.3.6.1.6.1.12.1.3.112.117.98.108.105.99.95.48
  675. - the function mpInit is now called with a pointer to an Snmp object
  676.   and an engineID: int mpInit(Snmp *snmp, const OctetStr& snmpEngineID);
  677. - New target (UTarget for SNMPv3):
  678.   - Methods to get/set security_name and security_model:
  679.     void get_security_name( OctetStr& security_name_oct);
  680.     void set_security_name( const OctetStr& new_security_name);
  681.     void set_security_model(int sec_model);
  682.     int get_security_model();
  683.   - If you know the engine_id of the target (no engine_id discovery):
  684.     void set_engine_id( const OctetStr& new_engine_id);
  685.     void get_engine_id( OctetStr& engine_id_oct);
  686.   --> most methods of CTarget do exist for UTaget: see target.h
  687.   For SNMPv3 there is only one valid security_model (SNMP_SECURITY_MODEL_USM).
  688.   If you set the security_model to SNMP_SECURITY_MODEL_V1 (or V2) you can use
  689.   te UTarget to send SNMPv1 (v2c) requests.
  690. - New methods for Pdu objects:
  691.   void set_security_level( const int level);
  692.   int get_security_level();
  693.   void set_context_name(const OctetStr &name);
  694.   void get_context_name(OctetStr &name);
  695.   void set_context_engine_id(const OctetStr &id);
  696.   void get_context_engine_id(OctetStr &id);
  697.   valid security_levels are: SNMP_SECURITY_LEVEL_NOAUTH_NOPRIV,
  698.   SNMP_SECURITY_LEVEL_AUTH_NOPRIV and SNMP_SECURITY_LEVEL_AUTH_PRIV
  699. - The CTarget can no longer be used as a SNMPv3 target. The methods
  700.   mpBuildCommunity and mpParseCommunity don't exist any longer.
  701. - The consoleExamples now use a CTarget for SNMPv1/v2c requests and
  702.   UTarget for SNMPv3 requests. There are new examples: snmpInform
  703.   (to send inform Requests) and receive_trap.