$Id: CHANGES,v 1.7 1998/07/13 04:23:53 trockij Exp $

Changes between mon-0.37k and mon-0.37l
---------------------------------------
-Config parser change from Michael Griffith <grif@cadence.com> that
 complains when "alertafter" will never trigger an alert.

-Added "savestate" and "loadstate". Currently these only save
 and load the state of things disabled.

-The server now can authenticate clients using a simple
 configuration file which can restrict certain users to
 using only some (or all) commands. "moncmd" was updated
 to support this feature.

-Addition of "upalerts" which may be called when a service
 changes state from failure to success. "upalerts" can be
 controlled by the "upalertafter" parameter.

-"alertevery" now ignores detailed output when it decides
 whether or not to send an alert. Patch submitted by
 brian moore <bem@cmc.net>.

-"hostgroup and hyphen" patch. This simple patch will allow
 hyphens and periods in hostgroup tags.

-Multiline output fixes in smtp.monitor <roderick@argon.org>

-Now monitors are not called when no host arguments are supplied. This
 can be overridden with the per-service "allow_empty_group" option.

-A fix to ftp.monitor by Tiago Severina <ts@uevora.pt> which allows
 for multiple 220 lines in the greeting from the FTP server.

-Added snpp.alert, contributed by Mike Dorman <mdorman@debian.org>.
 This requires the SNPP Perl module.

-Added ldap.monitor, contributed by David Eckelkamp <davide@tradewave.com>.
 This requires the Net::LDAPapi module.

-Added dns.monitor, contributed by David Eckelkamp <davide@tradewave.com>.
 This requires the Net::DNS module.

-Monitor definitions can now include shell-like quoted words, as defined by
 the Text::ParseWords module (included with perl5). e.g.:
 	monitor something.monitor -f "this is an argument" -a arg

-"allow_empty_group" is a new per-service option. If set, monitors will
 still be run even if all hosts in the applicable hostgroup have been
 disabled. The default is that allow_empty_group is not set.

-Monitors are now forked with stdin connected to /dev/null.

-Added "stop" and "start" commands which let make the server cease from
 scheduling any monitors. While stopped, clients can still be handled. The
 server may be started[sic] in "stopped" mode with -S. There is now a
 "reset stopped", which is an atomic version of "reset" and "stop". This
 is useful if you want to re-disable things immediately after a reset,
 so there will be no race conditions after the reset and before you
 disable things.

 opstatus.cgi now also reports the state of the scheduler.

-Updated documentation for monitors, the main "mon" manual,
 and the "moncmd" manual.

-Fixed a few problems in handle_client that had to do with shutting
 the server down.


Changes between mon-0.37j and mon-0.37k
---------------------------------------
-ftp.monitor defaults to the SMTP port instead of FTP! Thanks to
 ryde@tripnet.se for pointing this out :)

-alanr@bell-labs.com added "-u" flag to http.monitor so that you
 can specify the URL to get.

-Added hpnp monitor, which uses SNMP to query your HP JetDirect
 boards in your printers, and warns you when things go awry.
 For example, if there is a paper jam, mon can send out email
 telling you exactly that, and it includes in the mail the
 current readout on the printer's LCD.

-Added netappfree.monitor, which uses SNMP to get the free space
 from Network Appliance filers. Uses a configuration file to
 set low-watermarks for each filer.

-Added process.monitor (thanks to Brian Moore), which 
 queries the UCD SNMP agents to determine if there are errors with
 particular processes on a machine. This is very useful for monitoring
 those processes which seem to die off on occasion :)


Changes between mon-0.37i and mon-0.37j
---------------------------------------
Tue Apr 14 19:22:13 PDT 1998

-Configuration parser now dies when a watch is "accidentally" re-defined.

-Added process throttle to prevent a number of forked processes
 to go beyond a given value. This is a paranoia "safety net" setting.


Changes between mon-0.37h and mon-0.37i
---------------------------------------
Sun Apr  5 13:59:07 PDT 1998

-Added "randstart" and "randskew" parameters that can help balance
 out the load from services which are sheduled at the same interval.

-Added "exit=range" argument to "alert", which allows triggering
 alerts based on the exit status of a monitor script.

-Added an IMAP monitor, and an SNMP "reboot" monitor

-Added http_t.monitor, which times HTTP transactions

-Merged in patches supplied by Roderick Schertler
    - Changes to mon:
        - Support a pid file.  This is necessary for the system's
          daemon control script (which stops and starts the daemon, plus
          tells it to reload its configuration) to work.
        - Treat SIGINT like SIGTERM (for interactive debugging).
        - Allow a `hostgroup' line in mon.cf which doesn't have any host
          names (useful for putting each host name on a line by itself).
        - Add `d' (meaning `days') to the list of suffixes accepted by
          the interval and alertevery keywords.
        - Squelch extra blank line output by alerthist and failurehist
          commands if there are no corresponding history entries.
        - Bug fix:  fork() returns undef, not -1, on error.
        - Set umask 022, no 0.
    - Changes to mon.cgi:
        - Set -T mode.
        - Allow all local info fields to be blank, and set them that way
          by default.
        - Use the same default mon host as the other interfaces.
        - Use $ENV{SCRIPT_NAME} as the default $url.
        - Don't hardcode the path to mon, assume it is in the path.
        - Vet the name passed to the `list group' command.  The old code
          would allow remote users to run arbitrary local commands.
    - Changes to opstatus.cgi:
        - Set -T mode.
        - Correct port, was 32768 should be 32777.
        - Add missing Content-Type to html_die().
    - In monstatus correct the my() line in populate_group(), and add
      missing $group initialization.
    - Tweak typesetting in the mon.1 and moncmd.1 man pages.


Changes between mon-0.37g and mon-0.37h
---------------------------------------
Mon Jan 19 07:22:14 PST 1998

-I didn't merge back in a change to fping.monitor which
 sorts the output of fping, this causing alerts to go off unnecessarily
 when fping would return hosts in a different order each time it is
 run. An alert is send once every "alertevery" interval, unless the
 output changes. This is where it messed things up.

-added GPL header to all source files.


Changes between mon-0.37f and mon-0.37g
----------------------------------------
Sat Jan 10 10:40:26 PST 1998

-Fixed memory leak, with the help of Martin Laubach and Ulrich Pfeifer.
 The Perl 4.004_04 IPC::Open2 routine has a leak in it.

-Now includes the SkyTel 2-way pager interface for mon! What a hack,
 but it works pretty well!

-Also includes Art Chan's interactive web interface. It has buttons
 and graphics and all that other stuff that everyone wants!

-Removed the Perl 5.003 Sys::Syslog patches. I don't want to encourage
 anyone to use an outdated version of Perl, especially since there have
 been plenty of bug fixes since then.

-Server now handles multiple commands per client connection, and opstatus.cgi
 has been changed to take advantage of this. It's much faster now.


Changes between mon-0.37e and mon-0.37f
----------------------------------------
Fri Oct  3 06:14:50 PDT 1997

-Fixed a small typo in "mon.d/freespace.monitor" that would correctly
 detect a failure condition for low disk space, but the text that it
 would report was incorrect.

-As per Sean Robinson's suggestions, renamed the syslog patches to
 Perl 5.004 to accurately reflect what versions of Perl they patch.

-In "mon.d/http.monitor", fixed problem with what matches as a valid
 HTTP response. "200 OK" is incorrect, because the text that follows
 the 200 is undefined in the specs.

