Sat Dec  3 14:06:01 1994  Juergen Schoenwaelder  (schoenw at sulu)

	* Makefile.in: Moved the swish target to the toplevel.

	* parse.c, udp.c, misc.c, agent.c, tcl.c, snmp.h:
	  Fixed / added function prototypes.

Wed Nov 30 17:27:40 1994  Juergen Schoenwaelder  <schoenw@kastor>

	* query.c (MIB_Description):
	  Only skip white spaces at the beginning of a line.

Tue Nov 29 18:28:50 1994  Juergen Schoenwaelder  <schoenw@data>

	* asn1.c (ASN1_EncodeLength):
	  Fixed an off-by-one bug for length > 127.

Mon Nov 28 18:55:13 1994  Juergen Schoenwaelder  <schoenw@data>

	* tkAppInit.c (Tcl_AppInit): 
	  Added some of the scotty initialization code to evaluate
	  scotty's initialization file. This is ugly but the best
	  solution until we get tcl 7.4...

Mon Nov 28 09:44:43 1994  Juergen Schoenwaelder  <schoenw@achill>

	* tcl.c (request): 
	  trapOid sometimes got freed from not malloced memory.

	* response.c (decodePDU):
	  Replaced a call to MIB_Oid() with MIB_Name() to return
	  user friendly trap names.

Wed Nov 23 19:54:30 1994  Juergen Schoenwaelder  <schoenw@data>

	* agent.c (TreeAdd): 
	  Nodes with a subid smaller than all already existing 
	  nodes in a tree level were placed at the end.

	* tcl.c (conf_auth): 
	  Fixed the parsing of authentication keys.

Tue Nov 22 18:52:53 1994  Juergen Schoenwaelder  <schoenw@data>

	* asn1.c (ASN1_DecodeInt):
	  Fixed the decoding of negative integers.

Sun Nov 20 23:32:59 1994  Juergen Schoenwaelder  <schoenw@data>

	* parse.c:
	  Merged the parser node structure with the tree structure
	  to avoid unnessary duplications.

Fri Nov 18 03:06:46 1994  Juergen Schoenwaelder  <schoenw@data>

	* Replaced all Tcl_VarEval() calls to query the MIB 
	  tree with the corresponding C function.

	* Renamed the public MIB query functions and cleaned up
	  their interface. Merged tcl_snmp.c and tcl_mib.c into
	  one module.

	* Rewrote the query interface to the MIB tree. Its much
	  faster now, especially on lookups to instance identifiers.

Thu Nov 17 22:37:51 1994  Juergen Schoenwaelder  <schoenw@data>

	* Added some counters here and there to get some stats
	  for the snmp statistics groups.

	* Eriks extensions to parse.c and query.c are here to
	  handle textual conventions. Cool stuff. Thanks alot.

Wed Nov 16 02:19:34 1994  Juergen Schoenwaelder  <schoenw@data>

	* Rewrote walk() using calls to SNMP_Encode instead of
	  Tcl_Eval() which makes it a little bit faster.

Tue Nov 15 17:07:27 1994  Juergen Schoenwaelder  <schoenw@data>

	* Changed the interface to SNMP_Encode() so that we can
	  call it with an already assembled pdu. Allows me to
	  move the argmuent parsing code to tcl_snmp.c and to
	  call SNMP_Encode() directly from agent.c.

	* Erik has hacked parse.c to recognize enumerations and
	  textual conventions. Both are written to *idx files
	  and the mib format and mib scan commands can convert
	  enumeration to integers and back.

Sun Nov 13 17:40:13 1994  Juergen Schoenwaelder  <schoenw@data>

	* Tuned some lookup functions in query.c.

	* Implemented an agent session command to create objects
	  for an midlevel agent. It currently implements the
	  system group.

Fri Nov 11 10:26:58 1994  Juergen Schoenwaelder  <schoenw@data>

	* Cleanup the configuration code in tcl_snmp.c and added
	  Eriks hex_to_bin() and bin_to_hex(). Thanks.

	* Extended the session structure to keep an agent socket
	  and changed SNMP_AgentRecv() to save the address from
	  the sending entity in the session structure.

	* V1 and V2 now use the same session structure.

Thu Nov 10 18:44:26 1994  Juergen Schoenwaelder  <schoenw@data>

	* Directly encode packets without setting up message
	  structures first.

Wed Nov  9 15:27:24 1994  Juergen Schoenwaelder  <schoenw@data>

	* Removed the -nomib option as it really does not make
	  any sense to me.

Tue Nov  8 18:46:34 1994  Juergen Schoenwaelder  <schoenw@data>

	* Cleanup some code in tcl_mib.c and added hooks for
	  the 'mib format' and 'mib scan' commands.

Sat Nov  5 14:19:27 1994  Juergen Schoenwaelder  <schoenw@data>

	* Removed some mallocs by removing pointers to structures.
	  The structures are now an element of the enclosing 
	  structure.

Fri Nov  4 16:41:00 1994  Juergen Schoenwaelder  <schoenw@sol>

	* Moved the request handling function to request.c and
	  removed unneeded calls to SplitList().

Wed Nov  2 09:42:11 1994  Juergen Schoenwaelder  <schoenw@data>

	* Implemented the snmp trapsink command which allows to
	  install a trap handler, which gets called whenever
	  a trap message is received.

	* Renamed snmp create session to snmp session. This is
	  hopefully the final name... The old snmp session
	  command is now names snmp info.
	  *** POTENTIAL INCOMPATIBILITY ***

	* Moved the handling of outstanding request lists to the
	  misc module. I also rewrote stuff to create an entry in
	  a requests list only if it is really an async request.

	* Rewrote the varbind decode/encode functions to directly
	  convert from/to a TCL DString.

Mon Oct 31 00:46:03 1994  Juergen Schoenwaelder  <schoenw@data>

	* Changed the request structure to contain the encoded
	  packet instead of the message structure. This make
	  retransmits faster.

Sun Oct 30 23:54:06 1994  Juergen Schoenwaelder  <schoenw@data>

	* Rewrote some of the stuff in event.c and udp.c to 
	  integrate trap message handling and to clean up the
	  interface between these modules.

Fri Oct 28 19:46:31 1994  Juergen Schoenwaelder  <schoenw@data>

	* Fixed a bug in the snmp walk code - one of those nasty
	  things that clobber the interp handle. I now use eval
	  to do things, even if it is slower it is much safer.

Sun Oct 23 18:41:49 1994  Juergen Schoenwaelder  <schoenw@data>

	* Implemented warp 4 in the walk command.

	* Removed the Tcl_Interp* argument from the encoding/
	  decoding functions.

	* Moved the syntax_table to asn1.c and merged the ASN1
	  header files into a single one.

Sat Oct 22 13:15:34 1994  Juergen Schoenwaelder  <schoenw@data>

	* Fixed the handling of the callback tcl strings. We now
	  avoid some strdup()s.

Fri Oct 21 22:03:27 1994  Juergen Schoenwaelder  <schoenw@data>

	* Added a synchronous walk subcommand to a session handle.
	  This is just a loop around getbulk and currently uses
	  mas-repetitions == 1, which should be optimized.

	* Getbulk requests on SNMPv1 handles are now turned into 
	  getnext requests.

Sun Oct 16 17:16:07 1994  Juergen Schoenwaelder  <schoenw@data>

	* Renamed snmp create to snmp create session to allow more
	  objects to be created (like trap handler or MIB instances).
	  *** POTENTIAL INCOMPATIBILITY ***

	* Fixed a minor bug that affected async requests that timed out.
	  Now we invoke the error callback if we did not get an answer
	  after all retries.

Sat Oct 15 21:25:36 1994  Juergen Schoenwaelder  <schoenw@data>

	* Added a response subcommand to the session commands.
	  This is needed is some form to support the InformRequest
	  messages send by cooperating managers.

Mon Oct 10 17:42:35 1994  Juergen Schoenwaelder  <schoenw@data>

	* The mib parser now saves the access status. You can query
	  it using the `mib access' command.

Fri Sep 30 11:58:54 1994  Juergen Schoenwaelder  <schoenw@data>

	* The mib parser now accepts trap type macros as defined
	  in RFC 1215.

	* Added the straps trap forwarding server.

	* Added a tilde substitution to the "mib load" command.

Fri Sep 23 18:01:05 1994  Juergen Schoenwaelder  <schoenw@data>

	* Fixed the configure command for SNMPv2 sessions.

Tue Sep 13 00:26:23 1994  Juergen Schoenwaelder  <schoenw@sol>

	* The ASN.1 module now accepts zero length integers.
	  I don't know if this is legal, but cisco's are sending
	  them anyway.

	* Made all MIB lookups fuzzy. One has to use the -exact
	  switch to get the previous behaviour.

Mon Sep 12 19:48:03 1994  Juergen Schoenwaelder  <schoenw@sol>

	* All snmp operations return always the object identifier
	  in the varbind list. This makes output less readable,
	  but makes programming much easier since you always know
	  what you get. And it is easy to convert the oid back to
	  a name using the mib command.

Fri Sep  9 22:09:04 1994  Juergen Schoenwaelder  <schoenw@sol>

	* Removed the function handle_exception. This is now
	  done using the callback escapes. In sync mode, we
	  return the error name, the error index and the var
	  bind list.

	* Replaced all occurrences of long with int. This makes
	  this code running on a 64 bit DEC ALPHA machine.

Fri Sep  9 13:45:03 1994  Juergen Schoenwaelder  (schoenw@thor)

	* Rewrote execute_callback (fixes memory leak and speeds
	  it up) and removed error_callback. Use execute_callback
	  instead.

Fri Sep  9 11:31:22 1994  Juergen Schoenwaelder  <schoenw@sol>

	* Removed the obscure nullinstance and instance feature.
	  Its easy to do it in TCL, so we don't clobber our SNMP
	  code with it.

Wed Sep  7 01:29:35 1994  Juergen Schoenwaelder  (schoenw@data)

	* Removed the scanf call from mib_parse.c to speed up loading
	  times.

	* Lots of minor memory leaks fixed. We also do not stop
	  anymore just because we received an unexpected packet.

	* Automatically switch between synchronous and async.
	  mode.

Tue Sep  6 14:59:09 1994  Juergen Schoenwaelder  (schoenw@logic)

	* Changed the mib query module to return names or oids
	  depending on the argument type. Made some smaller
	  rewrites to make things slightly faster.

	* Removed the memcpy call in ASN.1 which works not reliable
	  on all systems if dealing with overlapping areas.

	* Fixed the handling of ANSI prototypes using the tcl
	  _ANIS_ARGS_ macro.

	* Added a -port option to set the destination port when
	  using SNMPv1.

Mon Sep  5 23:59:33 1994  Juergen Schoenwaelder  (schoenw at sulu)

	* Added some code to mib_parse.c to allow incremental
	  loading of MIB descriptions.

Sat Sep  3 18:01:22 1994  Juergen Schoenwaelder  (schoenw@logic)

	* Removed 'snmp clone'. I prefer a better output format
	  of '<session> configure' so that I can simply write:
	  'eval snmp create [join [$s configure]]'

	* Replaced all bzero() and bcopy() functions with the ANSI
	  memset() and memcpy() equivalents.

Fri Sep  2 22:01:35 1994  Juergen Schoenwaelder  (schoenw at sulu)

	* Changed Mib_Init() to accept a file name. A pointer to
	  the file name is stored in struct tree and later reused
	  to read the description of an object.


