Sun Nov 24 17:04:33 2002  Douglas C. Schmidt  <schmidt@tango.doc.wustl.edu>

	* agent/main.cpp (main): Added ACE::init() to the beginning of
	  main() to prevent crashes on Windows.  Thanks to Huseyin Calgin
 	  <calgin@yahoo.com> for reporting this.

Fri Feb  8 04:42:21 2002  Douglas C. Schmidt  <schmidt@tango.doc.wustl.edu>

	* asnmp/transaction.cpp (run): Changed the code to use ACE_Reactor::instance ()
	  rather than a local ACE_Reactor on the stack.  Thanks to Paresh
 	  Raote <p_raote@yahoo.com> for reporting this.

Thu Jan 25 12:48:33 2001  Craig Rodrigues <crodrigu@bbn.com>

	* agent/Makefile.orig    
	  asnmp/address.h.orig  
	  examples/next/next.cpp
	  examples/trap/trap.cpp
	  examples/walk/walk.cpp
	  tests/test_config.h
	  tests/Varbind_Test.cpp
	  tests/Counter64_Test.cpp
	  tests/run_tests.sh

	  New agent Makefile, and compilation fixes.

Sun Jun  4 14:51:33 2000  Darrell Brunsch <brunsch@uci.edu>

        * asnmp-overview.html:
          
          Added missing CVS Id string.

Tue Dec 21 16:22:21 1999  David L. Levine  <levine@cs.wustl.edu>

        * tests/*.cpp: removed the unnecessary explicit template
          instantiation.  Other instantiations were necessary
          with it, and it seemed to serve no useful purpose:
          there was no use of an ACE_Unbounded_Set<Log_Msg *>.
          Thanks to Jose Rubio <jrubio@tr.comm.mot.com> for
          reporting link failures with Sun CC 5.0, with explicit
          template instantiation enabled.

        * tests/test_config.h: added #include of "ace/ACE.h",
          because the file uses it later.  g++ 2.91.66 on Linux
          needed it.

Wed Jul 14 08:26:42 1999  Brian Raven <brianr@liffe.com>

        * asnmp/snmp.{h,cpp},wpdu.cpp:
          SYNOPSIS:
          1) The agent IP address in traps originating from logical
             domains on an Enterprise 10000 is that of the physical domain.

          2) The code that gets the IP address uses gethostbyname
             which is unsafe in a MT environment (according to the man page).

          DESCRIPTION:
          1) The problem seems to be caused by hostname only returning
             the physical domain name.

          SAMPLE FIX/WORKAROUND:
          1) To get around this problem I added the capability to
             override the local host name.

          2) I would suggest using the GenAddress class to obtain the
             IP address.

Tue Jun 22 13:34:54 1999  David L. Levine  <levine@cs.wustl.edu>

        * agent/Makefile: replaced rm -f with $(RM).

Thu Apr 29 06:46:46 1999  David L. Levine  <levine@cs.wustl.edu>

        * tests/Makefile: changed SRC to PSRC (for make depend).
          Thanks to Sandeep Goyal <sagoyal@hss.hns.com> for reporting
          that the Makefile was broken.

Mon Dec 28 22:03:57 1998  David L. Levine  <levine@cs.wustl.edu>

        * agent/main.cpp: added #include "ace/inc_user_config.h", for
          ACE_RCSID definition.  Thanks to wym <wym@dekang.com> for
          reporting that it won't compile without it.

Tue Oct 27 08:52:05 1998  David L. Levine  <levine@cs.wustl.edu>

        * asnmp/Makefile,tests/Makefile: added SRC definition for make depend,           and updated dependencies.

Mon Aug  3 17:50:08 1998  Gonzalo Diethelm  <gonzo@tango.cs.wustl.edu>

        * examples/get/get_async.cpp:
        * examples/get/get.cpp:
        Added ACE_RCSID to these files.

Fri Jul 31 19:26:07 1998  Gonzalo Diethelm  <gonzo@tango.cs.wustl.edu>

        * examples/Makefile:
        It had a missing info subdirectory.

        * agent/agent_impl.cpp:
        * agent/main.cpp:
        * agent/snmp_agent.cpp:
        * asnmp/address.cpp:
        * asnmp/asn1.cpp:
        * asnmp/counter.cpp:
        * asnmp/ctr64.cpp:
        * asnmp/gauge.cpp:
        * asnmp/integer.cpp:
        * asnmp/octet.cpp:
        * asnmp/oid.cpp:
        * asnmp/pdu.cpp:
        * asnmp/sagent.cpp:
        * asnmp/snmp.cpp:
        * asnmp/target.cpp:
        * asnmp/timetick.cpp:
        * asnmp/transaction.cpp:
        * asnmp/vb.cpp:
        * asnmp/wpdu.cpp:
        * examples/get/get.cpp:
        * examples/next/next.cpp:
        * examples/set/set.cpp:
        * examples/trap/trap.cpp:
        * examples/walk/walk.cpp:
        * tests/Address_Test.cpp:
        * tests/Counter64_Test.cpp:
        * tests/Counter_Test.cpp:
        * tests/Gauge_Test.cpp:
        * tests/Integer_Test.cpp:
        * tests/Octet_Test.cpp:
        * tests/Oid_Test.cpp:
        * tests/Target_Test.cpp:
        * tests/Varbind_Test.cpp:
        Added ACE_RCSID to these files.

Wed Jul 15 20:34:55 CDT 1998
   * general fixes for SNMPv1 trap generation code reported by
     Hien Nguyen <hnguyen@adcapex.com> and Jeff Hall <jeff@liffe.com>
     Added Hien's fixes, plus fixed -c option
     in examples/trap to properly set community string.
   * release 2.0

Fri Jan 30 15:29:42 CST 1998
    * fix vb.cpp to handle Gauge/uInt the same way. While retrieving
      ifTable found the bug.

Wed Dec 10 12:09:36 CST 1997
       * sagent.cpp, Eric Newton fix. result not checked. v1.8

Mon Dec  8 14:33:59 CST 1997
      * Thanks to Eric Newton's <ecn@smart.net> continued patches
         Version 1.7 has fixes for: agent, base library
       Fix to the response type fixes the interoperability with CMU snmp on
       linux. (and SNMP Research as well)

        Initialize member of Pdu: output_
        Send responses as response messages
        Deallocate and reset the io_vec

       The transaction object didn't initialize the io_vec used to receive
       a packet when it was used for an agent transaction.

       Cleans up a warning about using a const object from a previous
       patch.

       Removes the transaction object from the Reactor.


Sun Nov 30 17:49:12 CST 1997 Mike MacFaden  <mrm@tango.cs.wustl.edu>
      * Thanks to Eric Newton's <ecn@smart.net> apply patches:
     Removed G++ warnings:
        Removed unused variables
        Cleaned up unused args to functions
        Initialized variables
        Inserted casts in *printf* functions
        Added int return types to function definitions
        Converted some variables from int to size_t to cut down on
                sign comparison warnings
        Reordered constructor initializer lists
        Added return statements to functions returning int

    Modified for G++ language differences:
        Modified for loops for ANSI scoping rules

    Fixed Bugs:
        Deleted incorrect (cut-n-pasted) header to transaction.h
        Removed "assignment in if condition" error
        Added missing "break;" in switch statement in wpdu

    Features:
        Added async interface.

    Noise:
        Modified makefiles for g++ on Linux RedHat 4.1

     * The new async interface has a test example in examples/get/get_async.cpp
       that is useful if you are extending the get application.

     * Fixed makefile to include -lasnmp when building tests/examples

     * Compile and test with ACE 4.4 on Solaris 2.5.1 using Sun CC 4.2
       no warnings/errors. get_async will sigbus however in destructors.

Thu Sep  4 18:56:12 1997  Mike MacFaden  <mrm@tango.cs.wustl.edu>

      * commit agent/ mibs/ and update asnmp/ with sagent.h, cpp
        to implement a trivial SNMPv1 agent that hard codes support
        for mib II system group only.

Fri Aug 22 23:43:20 1997  Mike MacFaden  <mrm@tango.cs.wustl.edu>

        * clean up two memory leaks in octet class and one umr

Thu Aug 21 20:59:23 1997  Mike MacFaden  <mrm@tango.cs.wustl.edu>

        * Added Netbios address support to GenAddress
          and added DecNetAddress, AppleTalkAddress classes per CISCO-TC.my
          (ftp://ftp.cisco.com/pub/mibs)

Tue Aug 19 20:19:32 1997  Michael R. MacFaden  <mrm@mrm-ss20.cisco.com (Michael R. MacFaden)>
      * change IpAddress::is_arpa() to is_private() and update the comments
         per RFC 1597. Add new test routine to verify this function in
         tests/Address_Test.cpp

      * add IpAddress::to_octet(OctetStr& val) which is useful when having to
        send a network address as an Octet String as in CISCO-PING-MIB.my

Tue Aug  5 12:12:39 1997  Mike MacFaden  (mrm@mrm-ss20)
      * Thanks to Amos Shapira <amos@gezernet.co.il> apply patches
        to support IRIX 6.3. Stated request for:
          I think it would make things "righter" to make the code use C++
          strings (and maybe vectors?).

      * Begin testing on HP-UX 10.01 (missing ucontext.h)

Sat Aug  2 12:07:43 1997  Douglas C. Schmidt  <schmidt@flamenco.cs.wustl.edu>

        * Started to integrate the code into a more ACE-like style, e.g.,
          added a the "asnmp/" prefix to all the header files so that we
          don't need to play games with the -I flags and so we can always
          know where we're getting the headers from.

Fri Aug  1 19:23:52 1997  Mike MacFaden  (mrm@mrm-ss20)

      * NOTES: This first version only tested on Solaris 2.5

      * review classes for thread safety. Current thread design only
        allows for one thread to safely access any ASNMP object created.

      * run purify test of get routine no -memory leaks.

      * verify both shared archive/static archive types work with
        example programs

      * << Globals Changes >>

        * tested only archiver library version

        * reformat code to use one brace style.

        * changed all manifest constants defined as _XX to XX_ to stay out
        of compiler namespace

        * change all OS calls to use ACE_OS:: portability layer, #include
        <ace/OS.h>

        * reformat code to use one consistent brace layout and redo
        header using ACE

        * remove semicolons on member functions foo{}; - not necessary

        * make get() methods const member functions

        * removed unnecessary casts that looked like this: and revamped
          all memory allocations via ACE_NEW macro

          new_oid = (SmiLPUINT32) new unsigned long [ smival.value.oid.len

          To

          ACE_NEW(new_oid, SmiUINT32[ smival.value.oid.len])

        * Collapsed default constructors with constructors to constructors
          with default arguments.

        * removed unused #include <iostream.h>

        * Added ACE_TRACE() to classes

        * change get_printable() to to_string() - there will be more java
          programmers in the future so this should be the first step...

        * removed ASYNC interface till it can be rebuilt using ACE patterns

        * Attempt to make interface more type strict but leaving generic
          interfaces as escape hatch. Example: CTarget becomes UdpTarget
          for UDP/IP based agents.

      * << Class Specific Changes >>

        * Oid class:
          - remove char * routines, simplify class
          - added suboid method and removed get_printable() overloads

        * CTarget class:
          - renamed to UdpTarget. Stay out of Microsoft Namespace per MSJ
          Article by Allen Hollub.

        * Varbind class:
          - remove generic set_value for char,int, etc. Too easy to get
          this wrong. Allow just types defined.
          - added overload for equality operator (==)
          - added new constructor to allow setting full vb state oid,value, exception
          - add to_string()

        * Address class:
          - change manifest constants to enums for address lengths, add IP V6 lens

          - add a netbios name class, still pretty worthless since I don't have spec
            in front of me yet...

          - rewrite resolver calls to be thread safe and cleaner by moving to two
            class (static) member functions:

            // thread safe routine to lookup ip address given hostname
            // return <> 0 on error
            static int resolve_to_addr(const char *hostname, in_addr& quad_addr);

            // thread safe routine to lookup name given ip address
            // return <> 0 on error
            static int resolve_to_hostname(const in_addr& quad_addr, char *hostname)

        * added some interrogation routines to class IpAddress:
          is_loopback() const;

        * Ctr64 class:
          - added constructor using long long datatype (needs to be made
          portable to NT

        * Pdu class: add to_string()

        * Classes added wpdu class:
          - a new adpater class between CMU and HP pdu, varbind data structures

        * transaction class:
          - implement get/getnext timeout and retry logic using ACE
          Reactor class, ACE_Time_Value

Sat Jul  5 19:13:30 1997  Mike MacFaden  (mrm@mrm-ss20)

        * unpacked snmp++.tar.Z into ACE_wrappers, remove X11 support. If
          you need GUI support in a communications package, something's
          wrong, very wrong....

        * Change HP-UX Makefiles to use ACE makefile system

        * Change includes to use ACE OS Adaption Layer

        * change all OS calls to use ACE_OS:: versions

        * Add ACE_TRACE macros to all functions.

        * clean up the global namespace by puting all global functions
          into C++ classes as static member functions and make public only
          those that are used (uxsnmp.cpp, eventlist.cpp)

        * create README from readme.txt, COPYRIGHT files.

        * create tests/ directory rename ConsoleExamples to examples

        * cull out dead code modules and dump them into misc dir:
          oidname.cpp, ipresolv.cpp

        * ipresolv.cpp had broken hostname buffer size (200), when DNS has
          aways defined a max FQDN as 256...go figure.

        * add General Error handler since existing ones are not very
          useful in and of themselves.

        * change all _DEF to DEF_ since _ANYTHING is reserved for compiler
          writer namespace, NOT app writer

        * convert cmu code to use C++ new/delete from malloc/free so
          entire library uses C++ new constructor
