----------------- Released 2.1.5, 23/10/96 ----------------------- 21/10/96 (new feature) Added rfc2020.mib. 17/10/96 (bug fix) Rewrote the traceroute example to produce more readable output. 8/10/96 (bug fix) Added a call to DnsInit() in tnmDns.c which makes sure that the result of `dns -server' is well defined even if this is the first dns command ever called. 8/10/96 (NT port) Finished the Borland version of oncrpc.lib and resolv.lib. Note, the default resolver is 127.0.0.1 if you do not have a resolv.conf file on your Windows NT machine. This works fine if you have a local caching dns server running (strongly suggested). 7/10/96 (NT port) Split tnmIcmp.c module into three modules: tnmIcmp.c, tnmUnixIcmp.c and tnmWinIcmp.c. Only the platform independent code is left in tnmIcmp.c. 7/10/96 (new feature) The name of the user specific startup file is now read from the TNM_RCFILE environment variable is available. 2/10/96 (NT port) Replaced the quick and dirty hack of the SUN RPC code with the NT port done by Martin F. Gergeleit which is available at http://set.gmd.de/RS/Mitarbeiter/gergeleit/oncrpc.html. 2/10/96 (code cleanup) Replaced a call to callrpc() in tnmSunRpc.c with a call to clnt_call() for portability reasons. 2/10/96 (code cleanup) Changed the Tnm_MibEnum structures to hold the integer value in an int instead of a char*. Note, this change affects the internal structure of compressed .idy files. 27/9/96 (bug fix) The gdmo parser now returns all parsing error messages in the interpreter rather then writing them to stderr. 27/9/96 (new feature) The gdmo parser is now able to recognize "SET-BY-CREATE" properties as defined in Amendment 1 to ITU-T Recommendation X.722. 26/9/96 (bug fix) Fixed the implementation of -writecommunity. 25/9/96 (NT port) Added some ugly hacks to the compat/rpc/*.[ch] files so that the SUN RPC code compiles and runs on Windows NT. ----------------- Released 2.1.4, 20/9/96 ----------------------- 20/9/96 (feature removed) Disabled the -trapaddress, -trapport and -trapcommunity SNMP session options because they don't work well with mixed manager and agent sessions. 19/9/96 (NT port) Added wrapper functions for the socket calls that make sure that the Tcl error code is set correctly. (They also fix some strange NT Windows Socket semantics.) 13/9/96 (code cleanup) Cleanup of the tnmNetdb.c module to give better error responses. Changed the syntax of the netdb services command to get rid of the ugly list argument. *** POTENTIAL INCOMPATIBILITY *** 13/9/96 (new feature) Added -trapaddress, -trapport and -trapcommunity SNMP session options. Changed straps to listen on other ports than 162. This is not working yet. 12/9/96 (bug fix) Added two new functions TnmValidateIpHostName() and TnmValidateIpAddress() which are used to perform strict syntactic checks on IP host name and IP address arguments to work around bugs and security problems in some resolver libraries. 11/9/96 (NT port) Added support for the netdb and udp commands. Needs some more work but it is basically running. 9/9/96 (NT port) The following commands are now working on Windows NT machines: job, http, event, ntp, ined, syslog. All these commands pass their test suite (if available). 6/9/96 (NT port) Moved the entry points of the loadable module to unix/tnmUnixInit.c and win/tnmWinInit.c. Rewrote win/makefile.bc to make it compatible with Tcl7.5 and Borland C++ 5.0. 5/9/96 (bug fix) The netdb command returned reversed IP addresses on byte swapped hosts such as Intel PCs. 5/9/96 (bug fix) The mib command failed to do ~ expansion when loading a MIB file. ----------------- Released 2.1.3, 5/9/96 ----------------------- 3/9/96 (bug fix) Fixed the channel mode for sending HTTP documents. ----------------- Released 2.1.2, 2/9/96 ----------------------- 29/8/96 (bug fix) The http now switches correctly between crlf and binary channel mode and handles read errors by returning a usable Tcl error result. 28/8/96 (bug fix) SNMP sessions and request structures are now destroyed using Tcl_Preserve/Tcl_Release/Tcl_EventuallyFree to solve some nasty problems when processing events in a callback and destroying the session somewhere on the way. 27/8/96 (bug fix) The job command now deletes the timer handler if an interpreter is destroyed. It also uses the Tcl_Preserve and Tcl_Release calls to protect the job structure while evaluating commands. 27/8/96 (bug fix) Fixed a memory bug in the implementation of the sunrpc ether $host close command. 6/8/96 (code cleanup) Rewrote the initialization procedure to search startup files in a platform independent way. 6/8/96 (bug fix) Fixed a bug which caused a core dump while creating a machine specific directory to keep frozen MIB files. Rewrote the whole function that searches for MIB files to make it platform independent. 5/8/96 (bug fix) The snmp# instance command did create bogus instances if you were using strange sub-identifier like negative numbers or arbitrary strings. This case is now handled by returning an error. 4/8/96 (code cleanup) Rewrote the initialization procedure to support safe in addition to trusted Tcl interpreters. 3/8/96 (bug fix) The job, ntp, icmp and dns commands now work with multiple interpreters such that every interpreter maintains its own internal state independent of others. 2/8/96 (bug fix) The http command did not accept arbitrary documents. 1/8/96 (bug fix) Some DNS errors were not reported correctly. 1/8/96 (bug fix) Renaming job and snmp objects is now handled correctly. (Previous versions did not return the new name in the snmp info or job info commands.) 31/7/96 (code cleanup) Added a few casts to tnmSunRpc.c to avoid some nasty compiler warnings. 31/7/96 (code cleanup) Added functions to tnmUtil.c to lookup hostnames and to convert service names to port numbers. These functions are now used in all modules that need to do these conversions. The functions maintain a name to IP address cache. 31/7/96 (code cleanup) Added functions to tnmUtil.c to simplify the parsing of frequently used arguments. 31/7/96 (code cleanup) Added functions to tnmUtil.c to handle object configuration options in a more generic way. Changed tnmJob.c and tnmSnmpTcl.c to use these new functions. 30/7/96 (new feature) Added a compile time option SNMP_BENCH to measure SNMP round trip times and message sizes. 29/7/96 (code cleanup) Added a new module tnmUtil.c which implements the TnmTable structure. Changed a couple of modules to use the new TnmTable type to convert string to tokens and back. 21/7/96 (bug fix) Removed support for the UInteger32 type which is no longer defined for SNMPv2. ----------------- Released 2.1.1, 19/7/96 ----------------------- 17/7/96 (new feature) Added a -writecommunity session option to hold a community string for SNMP set requests (SNMPv1/SNMPv2C). 17/7/96 (bug fix) Better handling of noResponse errors in the snmp scalars command. 12/7/96 (bug fix) Scotty now recognizes standard traps defined using RFCC 1215 style TRAP-TYPE macros in addition to the traps defined in RFC 1907. 10/7/96 (new feature) The set of core MIB/SMI files is now defined in the global tnm(mibs:core) Tcl variable. 5/7/96 (bug fix) Fixed the USEC authKey initialization of the SNMP agent (added a USEC test to the test suite). 5/7/96 (bug fix) Fixed the cleanup of trap sockets when destroying SNMP sessions. 14/6/96 (bug fix) Changed the name of the Tnm package from scotty to Tnm to make it consistent with the Tcl naming conventions. ----------------- Released 2.1.0, 10/6/96 ----------------------- 7/6/96 (feature removed) Removed the rpc command because it needs to be rewritten to use channels and I do not want to delay the release even further. 6/6/96 (code cleanup) Restructed the example SNMP agent. 6/6/96 (bug fix) SNMP instances of scalars with an instance identifier not equal to "0" are now rejected. 6/6/96 (bug fix) Fixed the SNMP set processing code. Rollbacks bindings were evaluated for varbinds that did not trigger a set binding. 2/6/96 (bug fix) Removed all previously allowed abbreviations for command options in order to avoid conflicts. 30/5/96 (bug fix) Fixed a very general memory leak in tnmSnmRecv.c which affected asynchronous requests and errors/retries. 29/5/96 (new feature) Accept 0x[0-9]+ hexadecimal subidentifer in a hexadecimal object identifier. 26/5/96 (bug fix) Fixed a memory leak in LookupLabelOID(). 22/5/96 (feature removed) Removed the configuration option to enable TclX support since you can load extensions now. 21/5/96 (bug fix) Processing of SNMP inform requests now follows the rules defined in RFC 1905. 20/5/96 (feature change) Scotty now parses arguments like tclsh - the first parameter is usually the script name. *** POTENTIAL INCOMPATIBILITY *** 20/5/96 (bug fix) Fixed the initialization in Tnm_SnmpDelay which caused very long delays on some systems. 20/5/96 (feature change) Object identifier are now rendered into a readable string by using the module name and the label of the MIB node to make the string representation unique. 19/5/96 (bug fix) Rewrote TrapRecv() to fix core dump which occured when killing straps. 19/5/96 (bug fix) Rewrote some parts of tnmIned.c to use Tcl channels instead of C files. This avoids some deadlock problems. 16/5/96 (feature change) The mib commands now accept the MIB module name as a prefix in object names, e.g. SNMPv2-MIB!sysDescr.0. This solves naming conflicts. 16/5/96 (new feature) The mib module command returns the module name which includes the definition of a MIB object. 15/5/96 (new feature) The mib commands now accept the MIB file name as a prefix in object names, e.g. rfc1907.mib!sysDescr.0. This helps to resolve naming conflicts. 13/5/96 (new feature) Added the `$s scalars ' command to retrieve scalars without worrying about details. 13/5/96 (feature change) The `mib tc' now returns a list with an additional element containing the file name containing the TC definition. 9/5/96 (performance improvement) Added some special code to make MIB lookups of the style sysDescr.0 much faster than before. 8/5/96 (feature change) Handle inform requests automatically without requiring an agent session on the receiving entity. 7/5/96 (new feature) Added a `mib macro' command to access the macro which was used to define a node in the MIB tree. 25/4/96 (code cleanup) Merged the tkined and the scotty source trees. Reorganized all the source files. 14/4/96 (feature removed) Removed the support for SNMPv2CLASSIC which is now a historic IETF protocol. *** POTENTIAL INCOMPATIBILITY *** 1/4/96 (new feature) Added support for SNMPv2USEC based on RFC 1910. 11/3/96 (code cleanup) Renamed all files to use the tnm prefix. I have also replaced the copyright message in each file with a pointer to license.terms. The header is now split into tnm.h, tnmInt.h, tnmPort.h to make ports to new platforms easier. 5/3/96 (new feature) Added some code to parse RFC 1215 TRAP-TYPE macros. These trap definitions are converted to SNMPv2 style trap object identifier and registered in the MIB tree. 2/12/95 (performance improvement) New functions to avoid sprintf calls in tnmMibQuery.c and tnmSnmpAsn1.c. 5/2/96 (code cleanup) The implementation of the http command is now based on Tcl channels. 5/2/96 (new feature) Added a new binding command as we can't use UDP handles with the Tcl fileevent command anymore. 27/1/96 (code cleanup) Changes in tnmIcmp.c to use Tcl channels to talk to ntping. 29/1/96 (feature removed) Removed the tcp command as TCP sockets are now supported in plain Tcl. *** POTENTIAL INCOMPATIBILITY *** 27/1/96 (feature removed) Removed the getclock/getdate commands and the clock.c module as there is support for clocks in Tcl7.5 now. 7/1/96 (feature change) Renamed all global scotty variables. We now keep all information in a global array named tnm. *** POTENTIAL INCOMPATIBILITY *** 4/1/96 (feature change) The http head command returns the header as a flat list which will be accepted by the array set command. *** POTENTIAL INCOMPATIBILITY *** 21/12/95 (bug fix) We now let Tcl quote the hinfo elements returned by the DNS command since some people put white spaces in the OS and CPU fields (even though white spaces are not allowed in these fields, RFC1700). 7/12/95 (bug fix) The rpc command did not close all file handles when clients were destroyed. 25/11/95 (code cleanup) Code re-organization to support multiple operating systems. There is only one big Makefile left for UNIX boxes which makes changes a lot easier. 21/11/95 (feature change) The SNMP agent makes the previous value of the instance available as %p during binding evaluations to simplify SNMP set processing. 17/11/95 (feature change) Instances created during SNMP set processing are now removed automatically if we do a rollback. 16/11/95 (new feature) The example scripts are now installed in the scotty library so they are available in a standard place. 15/11/95 (new feature) Added patches send by to query pcnfs print servers. I edited them to be more portable and fixed some minor bugs. 15/11/95 (performance improvement) The sunrpc commands now cache successful host name lookups. 14/11/95 (feature change) Changed the delay option to use a delay since the last message send using any SNMP session. 14/11/95 (feature change) Changed the window flow control option to use a single request queue. Should work better with multiple sessions to a single destination. 14/11/95 (performance improvement) Cleaned up these utilities. Added a cache to keep track of resolved names to speed up frequent lookups. 14/11/95 (performance improvement) SNMPv2CLASSIC now uses struct sockaddr_in to keep the address and port number. 13/11/95 (new feature) Added a -delay option for SNMP sessions. It works similar to the -delay option of the icmp command and makes sure that there is a minimum delay between two successive SNMP packets. 12/11/95 (new feature) Some changes to allow some basic flow control. Every session now has a -window option which limits the number of asynchronous requests on the wire. 11/11/95 (new feature) New win directory to contain windows specific stuff. It is not usable right now - wait til 7.5 gets stable. 6/11/95 (bug fix) Added stricter checks for values of type IpAddress. 1/11/95 (bug fix) The calculation of the length of the unix domain address should now work across different platforms. 29/10/95 (new feature) Made scotty a dynamic loadable extension (tested on SunOS, IRIX, Linux, FreeBSD). 29/10/95 (new feature) Splitted the PDU processing into two procs. Set processing now supports an additional `check' binding and the old values are automatically restored if we have to rollback. 28/10/95 (new feature) The SCOTTY_NTPING environment variable can be used to overwrite the compiled in location of ntping. 28/10/95 (new feature) Added support for multicast traps. Very experimental but interesting stuff. 28/10/95 (new feature) Compressed MIB files are now written in an machine specific directory. This allows to share the scotty library across multiple platforms. 28/10/95 (new feature) The SCOTTY_STRAPS environment variable can be used to overwrite the compiled in location of straps. 24/10/95 (bug fix) Added code to add snmpTrapEnterprise to the SNMP trap varbind if we convert a SNMPv1 trap into a SNMPv2 trap. 23/10/95 (new feature) Added support for the upcoming SNMPv2C community based SNMPv2 "solution". 23/10/95 (new feature) Added a -version option to configure SNMP sessions. 20/10/95 (code cleanup) Removed the check for clnt_create() which is not used anymore. 20/10/95 (bug fix) Replaced all uses of clnt_create() with clnttcp_create() or clntudp_create(). This is hopefully more portable. 16/10/95 (feature change) Jobs that create Tcl errors are now removed automatically. This is consistent with the fileevent command and avoids never ending error loops. 16/10/95 (bug fix) Show the -agent session correctly. 16/10/95 (bug fix) `snmp# bind label event' returns the script. 21/9/95 (bug fix) There is now a default definition for tkerror in init.tcl. 20/9/95 (new feature) Scotty reads the environment variable SCOTTY_LIBRARY to initialize the scotty_library variable. 16/9/95 (code cleanup) Removed the stcl code as this is now part of tcl7.5*. Get the latest Tcl/Tk version if you want to use the safe Tcl extension. 14/9/95 (bug fix) Use a TCP connection to query the mount daemon. This allows to retrieve very large results. 12/9/95 (bug fix) Changing the command bound to a job is now done in two parts: First accept the new command and then put the command in place inside of the scheduler. This fixes a race condition where the was changed which was currently evaluated. 11/9/95 (bug fix) Various fixes/cleanups. Multicasts now work at least on SunOS 4.1.3, FreeBSD 2.0.5 and a bit on Linux 1.3.25. 10/9/95 (bug fix) Tnm_MibFindNode() returns the offset to the trailer of the given name or object identifier, which is usually an instance identifier. This gives better performance and fixes the broken `mib name system.sysDescr.0' result. 10/9/95 (bug fix) Fixed a problem where we used a char pointer that was already freed. 9/9/95 (new feature) Added the `mib index' command, which returns the index variables (or better keys) of a conceptual table. 3/9/95 (bug fix) Added yywrap() for those who do not use flex to compile the gdmo parser. 25/8/95 (bug fix) Fixed Makefile dependencies to avoid unecessary linker runs and cache include and library paths between configure runs. 14/8/95 (bug fix) Various changes in the Makefile to allow compilation in other directories using the VPATH and SRC_DIR variables. 11/8/95 (new feature) Rewrote much of the authentication checking code. I also added support to send SNMPv2_REPORT PDUs for the USEC model. The SNMPv2 models CLASSIC and USEC are now optional, so that you can just remove them completely if you don't need them. 9/8/95 (bug fix) Every attempt to configure a session handle will first wait until all pending requests have been handled. Otherwise, we could get into problems as we need to patch authentication bytes into packet before retransmission. ----------------- Released 2.0.0, 6/8/95 ----------------------- 6/8/95 (code cleanup) Removed the --with-tcl*, --with-tk* options. Instead, we query for the right path interactively. 6/8/95 (performance improvement) Added some static buffers to avoid malloc() calls while parsing / formatting OCTET STRINGs during PDU processing. 6/8/95 (performance improvement) Some changes to reduce the number of malloc() calls for asynchronous requests. Merged the SNMP_Timeout structure with the SNMP_Request structure. 5/8/95 (new feature) Various changes to support the new USEC SNMPv2 authentication scheme. This is really cool compared to the P/P/C model. 3/8/95 (performance improvement) Various changes to cleanup the handling of IP addresses and port numbers. 2/8/95 (bug fix) Straps now reports the IP address and the port of the SNMP entity that send us the trap message. 28/7/95 (bug fix) We are not calling Tcl_Eval() because of possible security holes with $ substitution and bracketed command evaluation. 27/7/95 (bug fix) Fixed handling of instances that are deleted during binding evaluation. Scotty returns a generic error code in this case. 27/7/95 (performance improvement) Some significant speed up if you find nodes by name which are at the end of the MIB tree by using the hash table. 27/7/95 (bug fix) Fixed a silly byte-order bug by adding a htons for our Intel friends. 26/7/95 (feature change) Changed the some commands to better support safe Tcl. All agent related commands are now bound to a session handle. There is now only one bind command for all kind of bindings. Bindings not associated with a particular instance require to use an empty label "". 24/7/95 (feature change) The script argument for the session bind command is now optional. We return the current script if the argument is missing. 24/7/95 (new feature) Added the ability to create an agent using a safe Tcl interpreter (based on stcl-0.1). 24/7/95 (bug fix) Scotty did not stop to process options once there was a string that definitely was not an option. 24/7/95 (new feature) Added the safe tcl extension (stcl-0.1) to the scotty sources until they are part of ordinary Tcl. See the file stcl-0.1/stcl.README for more details. 21/7/95 (new feature) Added the snmp alias command and the -alias configure option. 17/7/95 (new feature) Created a library directory which will contain a library of useful scotty procedures that can be used in various applications. 23/6/95 (feature change) Update msqltcl to Hakan Soderstrom's 1.50 version. 17/6/95 (feature change) Major rewrite of the job command. We now use an object-oriented syntax. Added a wait option. *** POTENTIAL INCOMPATIBILITY *** 14/6/95 (new feature) Added some code to extract the packets per protocol and the packet size distribution reported by the etherd. 20/5/95 (bug fix) Changed the semantics of retries to actually mean retries and not tries. 17/5/95 (bug fix) Some changes to handle Integer32 values. 17/5/95 (bug fix) Added an error return if called without any arguments. 15/5/95 (bug fix) Run CPP before we grep for struct rpcent in the configure file. 14/5/95 (feature change) We do not accept multiple arguments for the icmp command anymore. *** POTENTIAL INCOMPATIBILITY *** 14/5/95 (performance improvement) New and more efficient function to read reply from ntping. 12/5/95 (feature change) The http get command now writes into a file instead of a Tcl variable thus allowing binary data transfer. *** POTENTIAL INCOMPATIBILITY *** 12/5/95 (new feature) The snmp wait command now accepts a request identifier as an argument to wait for. 12/5/95 (new feature) Renamed the trapsink option to `bind trap' and added a `bind inform' option. 9/5/95 (bug fix) The auto_path variable was not initialized correctly as TKINED_PATH includes a colon separated list of directories. 8/5/95 (bug fix) The check for integer overflow was broken as large unsigned integers are encoded in 5 bytes, where the first byte is 0. 7/5/95 (bug fix) Michael Kernchen fixed a few minor gdmo related bugs. References to labels with incomplete definitions resulted in some error messages. 4/5/95 (bug fix) Fixed two places where a ckfree(NULL) could happen if a broken SNMP packet was received. 3/5/95 (bug fix) Once again fixed an off by one bug. Now we pass most of the SNMP test suite written by Marshall Rose. 2/5/95 (bug fix) Added a missing check for unknown SNMP message versions. 2/5/95 (bug fix) ASN1_INTEGER, ASN1_Counter, ASN1_Gauge and ASN1_UInteger32 were all encoded as an ASN1_INTEGER. 2/5/95 (bug fix) Fixed the conversion of SNMPv2 error codes into SNMPv1 error codes. 28/4/95 (performance improvement) We now return a pointer to some static buffer space to avoid some malloc/free polkas. 28/4/95 (new feature) Encode/Decode Counter64 values as Integer values if we are on a 64 bit machine and as doubles if we are on a 32 bit machine. Two new functions added to encode counter values to/from doubles on machines that use based on 32 bit integers. 26/4/95 (bug fix) Check for rpc/netdb.h added. Hans Bayle (hansb@aie.nl) reported that SCO uses this header for rpcent stuff. 26/4/95 (bug fix) Include rpc/netdb.h if HAVE_RPC_NETDB_H is true in tnmNetdb.c and tnmSunRpc.c. 26/4/95 (new feature) Functions to format and scan TimeTicks values. 26/4/95 (bug fix) Fixed handling of unsigned TimeTick values. 26/4/95 (bug fix) Fixed the check for noSuchName errors as pointed out by Louis A. Mamakos (louie@TransSys.COM). 24/4/95 (bug fix) Correct handling of large unsigned subidentifer. 21/4/95 (bug fix) Added a fix by Peter Reilly where the code did not update the packet pointer after encoding an ipaddress. 16/4/95 (new feature) Added new functions to split and merge Tcl varbind lists. They will sometimes be used internally to make multiple loops through a varbind less expensive. 14/4/95 (bug fix) Added a check for potential packet overflow (tooBig). 13/4/95 (bug fix) We now terminate the walk if we get an endOfMibView exception. 13/4/95 (new feature) Created a cgi directory which contains our WWW scripts. 6/4/95 (new feature) Added support for http binding. Needs more work. 29/3/95 (new feature) A new function to retrieve the MIB file name. 28/3/95 (bug fix) Changes to support tagged NULL values (used for exceptions). 28/3/95 (bug fix) Fixed en-/decoding of object identifier with length 1 or 2. 28/3/95 (feature change) Convert Tcl error messages from evaluated bindings into snmp error types. 27/3/95 (bug fix) Some hacks (calling it fixes would be a lie) to the parser to recognize SEQENCE and SEQUENCE OF syntax and to allow type definitions before a module header. Thanks Erik. 27/3/95 (new feature) A list of SNMP_Binding structures is now used to hold bindings as we need a bigger set of events. 26/3/95 (new feature) Added code to save the offset to the begin of the instance identifier. 26/3/95 (new feature) Added three more arguments and some code to allow %l, %i and %v escapes for instance bindings. 26/3/95 (bug fix) Multiple calls to create an agent on a snmp handle will now close the existing socket and reopen a new one. 25/3/95 (bug fix) We now use Tcl_CreatePipeline() to fork the straps daemon. 24/3/95 (bug fix) Reinitialize the PDU type to getbulk-request. Otherwise we send get-next requests with an error index != 0. 24/3/95 (new feature) Two new functions by Erik to handle Integer textual conventions as defined in the latest SNMPv2 draft. 23/3/95 (bug fix) The protocol of the sunrpc probe command was parsed from a wrong argv element (Thanks to Doug.Huges@End.Auburn.EDU). 22/3/95 (bug fix) The inform option now requires an trapOid argument as defined in the new SNMPv2 draft. 21/3/95 (feature change) Allow the subtyping of known Textual Conventions. 19/3/95 (code cleanup) Moved msqltcl.c into the bones directory. 10/3/95 (bug fix) Decoding zero length strings returned a NULL pointer instead of an empty string. 10/3/95 (code cleanup) Moved most of the sources into the tcpip subdirectory. 10/3/95 (code cleanup) Replaced all xmalloc() calls etc. with ckalloc() etc. which allows to use the Tcl memory debugger. 8/3/95 (feature change) The loop variable now contains the label or the object identifier of the node depending on the argument which defines the starting node. 8/3/95 (bug fix) The icmp command now accepts 0 retries as a default value. 7/3/95 (new feature) Added a switch --with-gdmo to the configure script to enable the gdmo parser. Moved the mib directory back to the snmp directory and created a mib repository in the gdmo directory. 7/3/95 (new feature) Added the first version of the GDMO Tcl extension and started to clean it up. Removed the gdmo stat option as it can be done easily in Tcl. 7/3/95 (new feature) New function to implement a walk along the leaf nodes of the MIB tree. Useful to count MIB objects or to build MIB browsers. 7/3/95 (performance improvement) Various rewrites to handle textual conventions. We now use a Tcl hash table to lookup textual conventions which makes a difference if you use large MIB definitions. 7/3/95 (bug fix) Fixed a bug which affected oids of length 1. 23/2/95 (feature change) Removed the port argument from the snmp agent command. Use the -port configure option instead. *** POTENTIAL INCOMPATIBILITY *** 23/2/95 (feature change) Bindings are now possible on any MIB object. They are processed from the instance to the root of the MIB tree. A break in a binding cancels further bindings. 21/2/95 (new feature) New command to query for textual conventions. 21/2/95 (bug fix) Fixed a bug reported by andy@is.net (Andy Shelley). An uninitialized last scheduling time was substracted if job list was called before the first job had a chance to run. 21/2/95 (new feature) Added a cmip abort and a cmip wait command. 20/2/95 (new feature) New wait option to wait for async. requests. 20/2/95 (new feature) Implemented a cget option to query session options. 19/2/95 (bug fix) Use SNMP_EvalCallback() to evaluate bindings which allows to use % escapes. Honours the break return. Added a call to Tk_BackgroundError() if an error occurs. 19/2/95 (code cleanup) Created a doc directory to hold all manual pages etc. 17/2/95 (bug fix) Do not try to encode something if the packet is already a NULL pointer because of an earlier error. 17/2/95 (new feature) Added a new snmp command 'snmp bind' to define bindings on SNMP instances. 14/2/95 (code cleanup) Centralized some includes to make ports easier. 11/2/95 (bug fix) noSuchName errors mark the end of a MIB view and hence they are no real errors. So we ignore them during a walk. 9/2/95 (new feature) Added a configure option for msqltcl. Cool stuff. 7/2/95 (feature change) Search for the mib file in $scotty_lib/site and in $scotty_lib/mibs. 6/2/95 (bug fix) Child nodes are now inserted in lexicographic order and already existing nodes are skipped when building the MIB tree. 29/1/95 (new feature) Added new tkined object types HTML and DATA. 24/1/95 (bug fix) Some additional code to handle MIB files that define more than one subtree. The solution is somewhat ugly, but at least it does what it should. 23/1/95 (bug fix) More checks to get -lsocket, -lnsl, -lrpcsvc stuff right. (Thanks to Ross Wakelin ). 22/1/95 (new feature) New function to query the textual convention that applies to a given object. 20/1/95 (bug fix) Fixed the encoding of MD5 authenticated messages. 19/1/95 (bug fix) Removed some hard wired quotings in tnmDns.c that are now done automatically by appending elements. 14/1/95 (feature removed) Removed the syslogd and netguard sources. They are now available as netguard-0.1.tar.gz and syslogd-0.1.tar.gz from ftp.ibr.cs.tu-bs.de/pub/local/tkined/contrib. 14/1/95 (bug fix) Stricter checks in den dns command for invalid arguments. *** POTENTIAL INCOMPATIBILITY *** 14/1/95 (new feature) Added the patch by Sam Shen (sls@mh1.lbl.gov) which allows multicasts (tested on Solaris-2.3 and Linux-1.1.81). 13/1/95 (new feature) Replaced the nslook command by a more general netdb command. 13/1/95 (code cleanup) Changed the autoconfiguration to use config.h files. 12/1/95 (feature change) Removed the error callback as it is a feature that is not really needed (simply check the error in the callback). *** POTENTIAL INCOMPATIBILITY *** 9/1/95 (feature change) Rewrote the icmp argument parsing code so that you always must define the operation separated from the options. *** POTENTIAL INCOMPATIBILITY *** 9/1/95 (feature change) Cleanup of the command parsing code of the dns and the ntp command. The option (-timeout, -retries, -server) keep their state now. *** POTENTIAL INCOMPATIBILITY *** 8/1/95 (new feature) The install target now installs scotty.h and libscotty.a. Started to renamed C functions to follow the Tcl coding style. 8/1/95 (code cleanup) Major scotty.c cleanup. I replaced the command processing with the code from tkMain.c. This makes the behaviour identical to tclsh and wish. 6/1/95 (bug fix) Skip object identifier definition between the label and the DEFINITIONS keyword in the MIB parser. 5/1/95 (bug fix) Fixed the MIB parser to skip all comments in the scanner. 3/1/95 (feature change) Replaced the scottyerror error handling proc with tkerror as we now use the tk event loop. 3/1/95 (feature change) A received ined command that is not processed imediately. We schedule a time event to flush the queue. 29/12/94 (feature change) Upgraded to tk4.0. Replaced the addinput/removeinput commad with the new tk fileevent command and removed the select command since we now use the tk event loop. The sleep command is obsolete now since after can do the same thing. A sleep is defined in init.tcl for compatibility. *** POTENTIAL INCOMPATIBILITY *** 21/12/94 (new feature) Added some code to accept hexadecimal components in an object identifier. ----------------- Released 1.2.0, 19/12/94 ----------------------- 19/12/94 Use the global variable scotty_mibs to define the default set of SNMP mibs. This allows modifications using site/init.tcl. 16/12/94 (bug fix) Added a missing call to shutdown(). 7/12/94 (feature change) Moved the ined initialization into inedCmd() so that it is possible to write scwish scripts for tkined by calling something like `catch {ined}' at the top of the script. 7/12/94 (feature removed) Removed the -v option which seems to be unused. 4/12/94 (code cleanup) Replaced all addinput/removeinput calls by an appropriate call to tcl C interface of the event handler. 3/12/94 (new feature) Create a libscotty.a library which can be linked to different tcl interpreters. 3/12/94 (new feature) Source $scotty_lib/site/init.tcl for site specific initializations. Added a check and a warning message if the after, addinput or removeinput command is missing. 3/12/94 (new feature) New file init.c just containing Scotty_Init() to support hyper extended wishes. Added a target to build scwish binary. 3/12/94 (bug fix) Fixed and added a couple of function prototypes. 30/11/94 (bug fix) Only skip white spaces at the beginning of a line when retrieving a description from a MIB file. 29/11/94 (bug fix) Fixed an off-by-one bug for length > 127. 28/11/94 (bug fix) trapOid sometimes got freed from not malloced memory. 24/11/94 (bug fix) Moved the mibs directory below the toplevel directory because ULTRIX install is brain damaged (sorry). 23/11/94 (bug fix) Nodes with a subid smaller than all already existing nodes in a tree level were placed at the end. 23/11/94 (bug fix) Fixed the parsing of authentication keys. 22/11/94 (bug fix) Fixed the decoding of negative integers. 20/11/94 (performance improvement) Merged the parser node structure with the tree structure to avoid unnecessary duplications. 20/11/94 (code cleanup) Updated the configure stuff to autoconf-2.1. 18/11/94 (feature removed) Removed the --with-snmp option as the snmp stack should run on almost any UNIX machine. 18/11/94 (performance improvement) Rewrote the query interface to the MIB tree. Its much faster now, especially on lookups to instance identifiers. 17/11/94 (new feature) Added some counters here and there to get some stats for the snmp statistics groups. 17/11/94 (new feature) Eriks extensions to parse.c and query.c are here to handle textual conventions. Cool stuff. Thanks alot. 17/11/94 (new feature) Calling scottyerror in ined.c when a command received from the tkined editor fails. 16/11/94 (performance improvement) Rewrote walk() using calls to SNMP_Encode instead of Tcl_Eval() which makes it a little bit faster. 15/11/94 (performance improvement) Changed the interface to SNMP_Encode() so that we can call it with an already assembled pdu. Allows me to move the argument parsing code to tcl_snmp.c and to call SNMP_Encode() directly from agent.c. 15/11/94 (new feature) 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. 13/11/94 (new feature) Implemented an agent session command to create objects for an mid-level agent. It currently implements the system group. 13/11/94 (feature change) Automatic loading of all mib definitions is only done when the first mib command is not a load command. 11/11/94 (bug fix) Cleanup the configuration code in tcl_snmp.c and added Eriks hex_to_bin() and bin_to_hex(). Thanks. 11/11/94 (performance improvement) 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. 10/11/94 (performance improvement) Directly encode packets without setting up message structures first. 9/11/94 (feature removed) Removed the -nomib option as it really does not make any sense to me. 8/11/94 (bug fix) Initialize tcl_interactive before calling Tcl_AppInit(). Added some minor defines to better integrate with tclX. 5/11/94 (performance improvement) Removed some mallocs by removing pointers to structures. The structures are now an element of the enclosing structure. 2/11/94 (new feature) Implemented the snmp trapsink command which allows to install a trap handler, which gets called whenever a trap message is received. 2/11/94 (feature change) 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 *** 2/11/94 (performance improvement) 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. 2/11/94 (performance improvement) Rewrote the varbind decode/encode functions to directly convert from/to a TCL DString. 26/10/94 (new feature) Added some magic to init.tcl to load mib definitions only when the mib command is actually used. 31/10/94 (performance improvement) Changed the request structure to contain the encoded packet instead of the message structure. This makes retransmits faster. 28/10/94 (bug fix) 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. 23/10/94 (performance improvement) Implemented warp 4 in the walk command. 23/10/94 (code cleanup)Moved the xmalloc() functions to xmalloc.c. 22/10/94 (performance improvement) Fixed the handling of the callback tcl strings. We now avoid some strdup()s. 21/10/94 (new feature) Added a synchronous walk subcommand to a session handle. This is just a loop around getbulk and currently uses max-repetitions == 1, which should be optimized. 21/10/94 (new feature) Getbulk requests on SNMPv1 handles are now turned into getnext requests. 21/10/94 (bug fix) Fixed a bug in event.c. Tk_DeleteFileHandler() did not close the FILE handle. 16/10/94 (feature change) Renamed snmp create to snmp create session to allow more objects to be created (like trap handler or MIB instances). *** POTENTIAL INCOMPATIBILITY *** 16/10/94 (bug fix) 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. 15/10/94 (new feature) Added a response subcommand to the session commands. This is needed is some form to support the InformRequest messages send by cooperating managers. 10/10/94 (new feature) The mib parser now saves the access status. You can query it using the `mib access' command. 30/9/94 (new feature) The mib parser now accepts trap type macros as defined in RFC 1215. 30/9/94 (new feature) Added the straps trap forwarding server. 30/9/94 (new feature) Tilde substitution in the "mib load" command. 13/9/94 (bug fix) The ASN.1 module now accepts zero length integers. I don't know if this is legal, but cisco's are sending them anyway. 13/9/94 (feature change) Made all MIB lookups fuzzy. One has to use the -exact switch to get the previous behavior. 12/9/94 (feature change) 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. 9/9/94 (feature change) 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. 9/9/94 (bug fix) Replaced all occurrences of long with int. This makes this code running on a 64 bit DEC ALPHA machine. 9/9/94 (bug fix) Rewrote execute_callback (fixes memory leak and speeds it up) and removed error_callback. Use execute_callback instead. 9/9/94 (feature removed) Removed the obscure null-instance and instance feature. Its easy to do it in TCL, so we don't clobber our SNMP code with it. 7/9/94 (bug fix) 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. 6/9/94 (feature change) Changed the mib query module to return names or oids depending on the argument type. Made some smaller rewrites to make things slightly faster. 6/9/94 (bug fix) Removed the memcpy call in ASN.1 which works not reliable on all systems if dealing with overlapping areas. 6/9/94 (bug fix) Fixed the handling of ANSI prototypes using the tcl _ANIS_ARGS_ macro. 6/9/94 (new feature) Added a -port option to set the destination port when using SNMPv1. 5/9/94 (new feature) Added some code to mib_parse.c to allow incremental loading of MIB descriptions. 3/9/94 (feature removed) Removed 'snmp clone'. I prefer a better output format of ' configure' so that I can simply write: 'eval snmp create [join [$s configure]]' 3/9/94 (new feature) Added an initialization file init.tcl that is expected to live in /usr/local/lib/scotty. It will be used to customize the SNMPv2 software. 3/9/94 (bug fix) Replaced all bzero() and bcopy() functions with the ANSI memset() and memcpy() equivalents. 2/9/94 (new feature) 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. 29/8/94 (bug fix) Fixed a bug in event.c handler which did not allow to redefine an addinput handler. 28/8/94 (bug fix) Fixed a bug in ined.c where I must have overlooked to rename a TOOL to a MENU object. ----------------- Released 1.0, 26/8/94 ----------------------- 26/8/94 (bug fix) Some last minute updates in ntp.c to retrieve the offset to the ntp peer by Erik. 14/8/94 (new feature) A new ntp command to query some network time protocol stats. Thanks Erik. 12/8/94 (feature change) Updated ined.c to support the new strip- and barchart objects. 8/8/94 (bug fix) Fixed a bug in event.c that caused core dumps on some machines (AIX, LINUX) when an event handler installed with Tk_CreateFileHandler() was invoked. 2/8/94 (bug fix) Added code to close unused file descriptors after forking a new ntping process. Added a socketpair(2) replacement using pipe(2) for SCO based on a patch by Juergen Luksch (luksch@telenet.de). 2/8/94 (bug fix) Added some new stuff to configure.in needed by SCO and some other ununsual OSs. 2/8/94 (bug fix) Fixed a bug in scotty.c to remove the eventhandler for stdin when EOF is reached. 26/7/94 (new feature) Changed the configure script to search for libgdbm.a since gdbm files have less holes than dbm files which is nice if you are using rdist. 26/7/95 (code cleanup) Renamed gdmo anmd cmip files to follow the Tcl conventions and to avoid problems with name clashes. ----------------- Released 0.9i, 26/8/94 ----------------------- 19/7/94 (code cleanup) Renamed the directory with the MIB files from scotty-mib to scotty. Please remove your old scotty-mib directory if you don't use older versions anymore. 19/7/94 (new feature) Added an 'rcp info' command that is similar to the 'tcp info' and 'udp info' commands. 17/7/94 (code cleanup) Rewrote the icmp command and the RPC mechanism to use read() and write() system calls instead of FILE operations. This makes scotty run correctly on HPUX machines. 14/7/94 (bug fix) Made stdin unbuffered when running in ined mode. This makes the communication script running synchronous. 7/6/94 (bug fix) Fixed a bug in the event / job handler which delayed job starts. This lead to a race condition in event.c. ----------------- Released 0.9e, 2/6/94 ----------------------- 30/5/94 (feature change) Added the well known tk C interface to the event handler. This is a hack that allows us to program async SNMP requests and will be changed when tk 4.0 comes out with an event mechanism that can be used without X11. 16/5/94 (feature change) Changed 'sunrpc ether open sulu' to 'sunrpc ether sulu open'. Corrected some wrong sunrpc error messages. *** POTENTIAL INCOMPATIBILITY *** ----------------- Released 0.9d, 15/5/94 ----------------------- 15/5/94 (new feature) Added the extended syslogd sources to this package. 15/5/94 (new feature) Split the tcp connect command in a tcp connect and a tcp listen command. *** POTENTIAL INCOMPATIBILITY *** 15/5/94 (new feature) Started a test suite in the tests directory. Some of the tests assume a normal tcp/ip installation, mainly a correct definition of localhost, udp and tcp echo capabilities, a running portmapper etc. Should work on most systems. 15/5/94 (feature change) Added the udp command and the tcp prefix to the tcp commands. This enhances readability and makes udp and tcp commands look similar. *** POTENTIAL INCOMPATIBILITY *** 26/4/94 (new feature) Added the getdate command and an argument to getclock. 20/4/94 (feature change) Rewrote the job scheduler in C. See the job command for more details. This replaces the job scheduler which was part of ined.tcl. The interface is now cleaner and documented. *** POTENTIAL INCOMPATIBILITY *** 10/4/94 (new feature) Integrated the access commands ined_id, ined_name etc. into the ined command. Now its legal do use either `ined name $comp' on an external object representation or `ined name $id' using an object id. *** POTENTIAL INCOMPATIBILITY *** 8/4/94 (new feature) Added round trip time to the sunrpc probe command and cleaned up the error messages a little bit. 8/4/94 (code cleanup) Rewrote the ined command in C for speed improvements. ----------------- Released 0.9, 9/3/94 ----------------------- 26/2/94 Moved ined.tcl from the tkined source to the scotty sources. The ined.tcl module now uses the event loop mechanism of scotty. This is needed to use the rpc mechanism in a tkined script. 4/2/94 (new feature) A background error that occurs while evaluating event callbacks is now handled by the user defined proc scottyerror, which takes the error message as its argument. 28/1/94 (bug fix) Added a check for the resolver library to configure.in. 24/1/94 (code cleanup) Do not remove the output from rpcgen when making a distribution. This makes the compat directory obsolete. 24/1/94 (bug fix) Included a Erik's patch for dns.c to make it compilable on AIX machines. Also added test for sys/select.h to configure. 22/1/94 (new feature) Added the rpc command that lets us build communicating agents easily. 22/1/94 (feature removed) Removed the support for GNU's readline library because we get trouble with the eventloop mechanism. Use ile instead. 22/1/94 (feature change) Renamed the old rpc command to sunrpc to avoid confusion about which rpc service will be used. 19/1/94 (new feature) Added an event-loop mechanism in event.c that allows us to run tcl scripts as server that receive commands, perform some action and return the results. Changed scotty so that it runs in this eventloop per default. 14/1/94 (new feature) Added Poul-Henning Kamp's SNMP implementation. This will be removed when our own SNMP implementation is done. This will break things but lets us play with SNMP right now. ----------------- Released 0.8, 9/1/94 ----------------------- 9/1/94 Option parsing is now done without getopt. This allows me to forward unrecognized options to the interpreter in the global argc and args variables. 31/12/93 Scotty now uses GNU's autoconf program to create a configure command. 21/12/93 (new feature) Added the syslog command. ----------------- Released 0.7, 8/10/93 ----------------------- 27/9/93 (new feature) Added the select command from extended tcl distribution (tclXselect.c) to implement a small job scheduler. 6/9/93 (feature change) Rewrote tcp.c (based on tclRawTCP) which uses the new file handling interface of tcl-7.0. 4/9/93 (new feature) Tkined specific initialization option -i added. Changed the headers that Scotty compiles with non ANSI C compilers. ----------------- Released 0.6, 31/8/93 ----------------------- 21/7/93 (new feature) Added the dns command written by Erik Schoenfelder. ----------------- Released 0.5, 19/7/93 -----------------------