This is the changes for the the enhacements that I have been adding into
Spong. You can pick up this file at http://monsters.org/pub/spong/CHANGES.
You can pick up the latest spong version from:
   http://monsters.org/pub/spong/spong.tar.gz

Stephen L Johnson <sjohnson@monsters.org>

Spong 2.7.5

06/07/01 - fixed logic bug in add_contact() routine with group recipients not
being expanded - spong-message.pl

05/25/01 - fixed problem with stop_after flag not being reset on servics after
a flagged service - spong-network.pl

Version 2.7.4

05/07/01 - commiting various odl changed to CVS

04/20/01 - fixed misplaced brace in my previous fix for spong-message.pl

04/16/01 - fixed problem with contacts not being added to FIFO properly spong-message.pl. It broke delay/repeat notifications.
    
04/16/01 - fixed array compare bug in load_config_files() routines. Added
missing parens. (Thanks to John Faichney <faichney@opentext.com>)
    files - www-spong.pl
            www-spong-ack.pl
            wap-spong.pl
            spong-server.pl
            spong-network.pl

04/12/01 - fixed bug in check_ntp module with $/ (record seporater) var
being undef'ed and not restored. 

03/26/01
FIXED - fixed wrong directory path bug of first_run logic in messaage_user
(thanks to Christophe Delmon for the fix).
   spong-server.pl

FIXED - fixed problem with sigmask not being cleared in restarted master
processes in spong-server. (thanks to Christophe Delmon for the fix)

FIXED - added wml_escape() around $summary in display_wml(). (thanks to
Christophe Delmon for the fix)
   SPONGLIB/Spong/Service.pm

Version 2.7.3

02/08/01
FIXED - replace wrong file version of spong-network in CVS tree

01/30/01
FIXED - Fixed problem with using month time for for minute field in BB
emulation in spong-server.

01/19/01
FIXED - Fixed bug in 'skip_network_checks' flag logic, wrong variable name in
spong-network.pl

01/17/01
FIXED - Added new check for /octets from/ from the Mandrake 7.2 ping command.
   file - /lib/Spong/Network/plugins/check_ping

01/08/01            
CHANGED - Stephen Carpenter's 'stop_after' flag patch has been modified in
spong-network.pl. The skipped service checks in the 'services' list will not 
be flagged with the new 'clear' status if the flagged service check fails.

01/07/01
CHANGED - Purple virtual statuses are now converted to real a status 
by the spong-server. Once a status is converted it a history event is
generated for the host. (Thanks to Christophe Delmon <delmon@fingo.net>
for the patches).

ADDED - A new status clear/not-available has been added. This is used to
indicated that the status of service is not currenly available. 
    Files - spong-server.pl
            lib/Spong/HistoryList.pm
            lib/Spong/HistoryService.pm
            lib/Spong/Service.pm
            lib/Spong/ServiceList.pm
            lib/Spong/HostGroups.pm
            lib/Spong/HostList.pm


Version 2.7.2

01/06/01
FIXED - Fixed problem in Status.pm perl module about a missing alarm(0)
when the module die's after an unsuccessfull socket creation. (Thanks for 
David Bronder <david-bronder@uiowa.edu> finding the problem.)

01/04/01
UPDATED - The Status.pm module now allows you to specify multple Spong Servers
along with the upate process port number. The full syntax is
   spong-server1[:port] [spong-server2[:port] ...]

12/30/00
CHANGED - Changed add_contact() procedure logic to not add actual 'group' 
contact on contacts FIFO. 
   files - spong-message.pl

ADDED - Added new 'last_if_match' attribute flag for messaging rules. If this
attribute is set to '1' for a rules and it matches, the rules scanning engine
will quit processing. The effect is to temporarily set $RULES_MATCH to
"FIRST-MATCH" for that particular rule.
   files - spong-message.pl

12/24/00
ADDED - Added printing of new 'name' attribute of message rules to 
--debug output. Added help() procedure to print out program usage.
   files - spong-message.pl

12/21/00
ADDED - Added a new attribute flag 'skip_network_checks' for the spong.hosts
config file. It is for the spong-network program. When set for a host,
spong-network will skip all of the testing for that host.

FIXED - Fix problem in the Makefile with a 'tmp' dir not being created in 'make
client' directory.

CHANGED - Added enhanced section of testing $MESSAGING_RULES with spong-message
program in the spongfaq.pod question #3.

12/20/00
ADDED - Added exclude_color / exclude_status matching to the spong-message
matching rules. You can specify one or more status color to exclude on.
(thanks to John Wingenbach <jwing@pliantsystems.com> for the changes)

ADDED - Added ignore_interface facility to check_interfaces spong-network
module. This change allows you to specify one or more network faces to ignore
on a host. (Thanks to Joe <moebius@bitstream.net> for the changes.)

FIXED - Fix a slight logical problem with the check_interfaces spong-network
module. And added a slight enhancement to the summary line. It will now
return the number of interfaces that are down. (Thanks to Duncan Sargeant
<dunc-spong@rcpt.to> for the changes)

ADDED - Added per service downtimes for spong.hosts file. Services are
specified by a 'down:servicename' attribute in the host entry in spong.hosts.
(Thanks to Andrew Ruthven <puck@chelmer.co.nz> for the patch)

FIXED - Fixed syntax error in /lib/Spong/Host.pm module with the
$WWW_PROB_ACTIONBAR actionbar generation code. (Thanks to Andrew Ruthven
<puck@chelmer.co.nz> for the fix) 

12/19/00
CHANGED - Added code in spong-server.pl to send "message" field of status
message to spong-message program when notifications are sent.

FIXED  - Fixed problem in spong-message.pl with message throttling and
contacts that are hashes. (Thanks to Michael Brown <michaelb@opentext.com> for
the patches)

FIXED - Fixed problem in spong-server.pl with SEND_MESSAGE = CHANGE mode.
Notifications were being sent out if status was green and it was the first
status update. (Thanks to Michael Brown <michaelb@opentext.com> for the
patches)

ADDED - Added "group" attribute for %HUAMNS entries. It allows a group
of users to be specified. The change handles contact hashes properly. Read
the documentation in the spong.hosts documentation for more info. (Thanks to
Michael Brown <michaelb@opentext.com> for the patches).

CHANGED - removed the pingecho() from check_ping spong-network module. And fixedalarm() timer problem with eval{} block.

ADDED - (EXPERIMENTAL!!!) Added code to spong-network.pl to allow remaining
tests for a host to be skiped if a flagged check(s) fail. Append a ":" to
service name as the flag. Skipped tests will eventually turn purple. This is
the first step of this modification. (Thanks to Stephen Carpenter
<scarpe01@emerald.tufts.edu>)

FIXED - Fixed timer problem in tcp_check() when running spong-network under
perl debugger.

12/18/00
FIXED - A couple of syntax bugs squish from new code transplanted from test
programs.  Effected spong-network.pl and spong-serer.pl.

12/15/00
A belated thanks goes out to Stephen Carpenter
<scarpe01@emerald.tufts.edu> for patches to the check_processes spong-client
module 05/2000. His changes made the module more effecient and quicker. I
missed documenting his patch in this CHANGES file.

CHANGED - Put '^' into regexp matches instead of modifying pattern variable.
This avoids spurious ^s in the output. (Thanks to Michael Brown
<michaelb@opentext.com> for the patch.)

ADDED - Added code in History.pm module to display full host name if
HISTORY_FQDN variable is set to 1. Updated spong.conf.pod documentation.
(Thanks to Michael Brown <michaelb@opentext.com> for the patch)

ADDED - Added --test param to spong-server which is passed to spong-message
which skips the actual send of notifications (Thanks to Michael Brown
<michaelb@opentext.com> for the patch )

12/14/00
FIXED - Added code for maintain group names in order groups in the spong.groups
config file. Group names order is now preserved in Host Goups displays. Files
affect are spong-server.pl and SPONGLIB/HostGroups.pm.

11/30/00
FIXED - Added default message template in spong-message.pl if a default
template is not found in spong.message config file.

11/29/00
CHANGED - Added code in check_http, check_interfaces and check_snmp use new
spong.hosts host specific parameters. And added $Id: CHANGES,v 1.60 2001/06/13 16:12:24 sljohnson Exp $ RCS keyword.

ADDED - Added wml_escape() in Service.pm module to escape WML format characters
for display_wml() procedure. (Thanks to Christophe Delmon <delmon@fingo.net>)

FIXED - Fixed problem in spong-server with save_ack and del_ack being called
when an acknowledgment is deleted. (Thanks to Christophe Delmon 
<delmon@fingo.net>)

Version 2.7.1

11/21/00
ADDED - Added code to www-spong.pl to default $WWW_TITLE_FRAME if not defined

11/14/00
ADDED - Added ability to adjust size of Top Frame of www-spong in 3 frame mode
files - src/www-spong.pl
        config/spong.conf.in
        config/spong.conf.sample

11/06/00

FIXED - Fixed bug with $SPONGSLEEP defaulting to 300 in spong-server. moved 
sleep code to after loading of config files. (Thanks to David Bronder)

FIXED - Fixed parsing bug with hostnames containing '-' in www-spong-ack.
(thanks to David Bronder)

11/07/00
FIXED - Fixed problem with missing RPCINFO commands in spong.conf.* files.
added -s in solaris ping command

CHANGED - Add check_process changes by John Wingenbachm along with added
optional critical counts for processes ( e.g. ['regexp:cnt','regexp:cnt'] )

CHANGED - Changed chown commands in Makefile to chown / chgrp command pairs

FIXED - Fixed problem with check_http Network module in HTTP/1.1 check for
problem in IIS running virt server but not to serve under it's FQDN (thanks 
to David Bronder <dave-bronder@uiowa.edu>

Version 2.7.0 Changes

10/26/00
FIXED - Fixed a bug with the new host group 'display' attribute code in
HostGroup.pm

10/17/00
FIXED - Miscellenous Makefile/make syntax and spelling errors

10/13/00
ADDED - Added initial Makefile install support.

09/25/00
ADDED - Added initial support for a WAP based interface. WAP display program
is still very beta but usable.

09/19/00
FIXED - Fixed problem with check_telnet network module. check was croak'ing 
on errors. changed errmode() to 'return' go that errors are returned properly.

09/15/00
ADDED - Added check_telnet spong-network modules into CVS

CHANGED - Various documentation updates to POD documentation

09/14/00
ADDED - Added /pod/builddoc program to build Spong documentation from all POD
sources in the distribution.

09/13/00
CHANGED - Replace check_dns spong-network modules with one that doesn not use
Net::Ping. It uses nslookup or dig to do the actual query.

CHANGED - Update the spong.conf.<os> files with the new $DNSCMD config variable.

09/01/00
CHANGED - Removed POD documetation from /src/*.pl source files to seperate 
files in /pod.

08/21/00
CHANGED - Changed WWWSPONG and WWWACK defaults in the spong.conf file by
removing the "http://hostname/". It's not really needed.

08/21/00
UPDATED - Updated spong-client module to handle multiple mail queue directory
capability of sendmail version 8.10 and higher. If spong.conf variables
$MAILQ_SUBQ_WARN and $MAILQ_SUBQ_CRIT are defined, check_mailq will warning
and critical counts checks for each queue directory.

08/15/00
CHANGED - Changed SendMsg to handle multiple servers in $SPONGSERVER variable.
Port numbers can also be specified as a part of the host names. New syntax for
$SPONGSERVER is now "hostname[:port] hostname2[:port] ...". If ":port" is not
specified the the port will default to the $port variable passed in the
function calls.

08/02/00
CHANGED - Changed status, event and page functions in /lib/Spong/Status.pm
module to called a common SendMsg routine to send message. Updated error
reporting to use main::error() routine.

07/28/00
UPDATED - Update question 2 in spongfaq.pod file with $HOST = "hostname" in
spong.conf option

07/26/00 
CHANGED - Various files. All other code that displays a date and/or a time
have been changed to use the new DATETIMEFMT, DATEFMT, TIMEFMT, TIMEFMTNOSEC
configuration varirables of the spong.conf file. These formatting varirables
are strings that have strftime() presentation symbols to format the date
and time to your local standards. Check out the defaults in the default
spong.conf file. They are setting for North American Date and Time formats
(i.e. Month / Day / Year for dates). Thanks to Andrew Ruthven
<puck@chelmer.co.nz> for the patch that did most of the work.

07/25/00
CHANGED - Changed escalation code in spong-network to not report downgraded
'red' statuses until after the re-checks. The final status state is reported
to spong-server.

07/23/00
CHANGED - In spong-network changed check_tcp function to use
socket,bind,connect code to check sockets. Added better code to return error
code text to caller.

07/20/00
FIXED - added missing msg template code for 'contact:module' formatted contacts.
(Thanks to Scott Hebert <scott@cae.ca>)

07/13/00
CHANGED - Updated spong-client and spong-server to use the $SPONGSLEEP{}
has to allow for customizing sleep times on a per program basis.

07/12/00
UPDATED - Minor documentation updates. Especially the note in spong.groups
about not have to put hosts as members of the 'all' host group.

07/08/00
ADDED - Adding message templates functionality to spong-message. Check
spong.message config file for details.
  files - src/spong-message.pl
          config/spong.message

CHANGED - Modified the messaging modules to use the new API calls from 
spong-message.
  files - lib/Spong/Message/plugins/*

CHANGED - Update spong.message with new message templates section.

CHANGES - Updates spong.conf with new DATEFMT, TIMEFMT and DATETIMEFMT
variables for user configurable date and times formats using strftime
formatting variables.

06/26/00
CHANGED - Various documentation updates and format conversion to POD.

06/02/00
FIXED - problem in spong-network with $color not being set if service is down when
program starts up.

05/14/00
ADDED - Add updated documentation to spong-network.pl in pod format.

05/12/00
FIXED - save_status() function into spong-server didn't allow host names wot
upper case letters. (Thanks to supermathie from SourceForce)

05/09/00
ADDED - Text displays code for all modes into HostGroups.pm. (Thanks to 
Andrew Ruthven <puck@chelmer.co.nz> for the changes)

ADDED - Added code into spong text client interface program to call new
text display code of HostGroup.pm. The new parameter is --grpsummary.
(Thanks to Andrew Ruthven <puck@chelmer.co.nz> for the changes)

05/04/00
FIXED - Fixed some problems with my debugging code in the check_snmp and
check_interfaces spong-network modules. The modules would never recover from 
reporting after an error. Every after would be reported as an error.

ADDED - Added patch to HostGroups.pm by Andrew Ruthven <puck@chelmer.co.nz>
that added a neat brief html view to the Host Groups Summary display.
www-spong --brief --grp-summary  or  .../www-spong/brief/grp-summary/  (URL
command string)

05/03/00
CHANGED - Perl POD format documenation was added to the check_snmp and
check_interfaces modules. You can now use pod2man, pod2text, or any other pod
convertor to get documenation on the modules.

ADDED - Added check_snmp  contributed by "mike bayliss"
<mbayliss@datax.be>. I added some more error checking code for SNMP sesion
problems and make the sysObjID check optional.  SNMP Community names can be
added to host entries in the spong.hosts file using the 'snmp_community'
attribute name. The default community is 'public'. The sysObjID check can be
enabled by adding an 'expect_objid' attribute to the host's entry in %HOSTS in
spong.conf.

FIXED - Fixed problem in spong-network where service that were previously down
their status's where downgraded to yellow for the next cycle instead of
remaining red. And critical count for services where not being reset at the
start of the main check loop.

05/02/00
ADDED - Added check_interfaces contributed by "mike bayliss"
<mbayliss@datax.be>. I added some more error checking code for SNMP sesion
problems. SNMP Community names can be added to host entries in the spong.hosts
file using the 'snmp_community' attribute name. The default community is
'public'.

04/21/00
FIXED - Fixed problem with Time::HiRes module on system where it's not
installed.

CHANGED - Changed the problem escalation code to be a subloop to will recheck
services that check as down. The services will be reported as a warning 
(yellow) until they fail $CRIT_WARN_LEVEL times. The retry sleep interval
if seperately configurable.

04/18/00
ADDED - Added support for noping via a routine that munges the $services field
in the %HOSTS array.

04/16/00
CHANGED - removed Net::Ping from spong-network, moved it to check_ping module.
added support to use Time::HiRes module if loaded. reactived problem esclation
code in spong-network. Changed check_tcp routine to use increasing timeouts
instead of a flat 10 second timeout. Made check_tcp to report reson why service
is down (time out or service refused).

04/04/00
FIXED - wasn't closing duplicate $client and $sock file handles in all forking
code in spong-server

CHANGED - renamed 'overview' functions and parameters to 'grp' to reflect
'group' view name in spong-server and www-spong

04/03/00
CHANGED - listen_for_queries(), listeb_for_updates() and list_for_bb_updates()
processes have been changed to use fork()'ing to handle incoming connections.

03/14/00
ADDED - listen_for_queries() routine now updates it's master list of services
from the database every 15 minutes.

FIXED - Fixed status color order in %COLORS hash. (thanks to "mike bayliss"
<mbayliss@datax.be> )

ADDED - Enchanced Error logging with Spong::Log modules. Parameter processing
now uses Getopt::Long. Program will about if another instance of the program
is already running. Current program status is written to $0 to show up in
ps command displays.
   files - spong-network
           spong-client

FIXED - Call to Spong::Logger->new() in open_error_log() was missing logopt
parameter in module lib/Spong/Log.pm.

03/13/00
ADDED - Added three frame mode for www-spong. Added tool bars for title frame,
and hosts in problem display (left frame).
   files - www-spong
           lib/Spong/Host.pm
           config/spong.conf

ADDED - Added RedHat 6.x boot scripts to the contrib directory.

03/09/00
FIXED - fixed misspelling of breif.html in lib/Spong/Info.pm module
(thanks to  Andrew Ruthven <puck@chelmer.co.nz> )

CHANGED - enchacement to spong-message to enable mulitple services to be
placed in Spong Acks
(thanks to Brian Jared <bjared@monster.com> )

03/06/00
FIXED - the background color of CELLS where invalid if WWW_USE_IMAGE = 0
   files - lib/Spong/HostGroups.pm

03/01/00
FIXED - added to build to chmod 755 to /lib/Spong/ directories
(thanks to "Eric D. Christensen" <edc@ns.proadmin.com> )


02/29/00
FIXED - added fix for repeated notifications for contacts with a 'delay'
attributed defined in spong-message

FIXED - added default value to $WWW_DEFAULT_VIEW if it is not defaulted
in spong.conf file
   file - www-spong

FIXED - moved calling to already_running() to handle_signals() because the
signals parmas could not be used in spong-server

FIXED - added code to clear out the signal mask in spong-netowrk, spong-client
and spong-server in case the process inherits a blocked signal
(thanks to "mike bayliss" <mbayliss@datax.be> )


02/23/00
FIXED - fixed problem in HostList.pm where host URL's in display_html() are
invalid when WWW_FQDN = 0 (Thanks to "mike bayliss" <mbayliss@datax.be>)

ADDED - added interactive functions for host group overview web displays

02/20/00
ADDED - added display_problem() function to HostGroups.pm modules
   file - lib/Spong/HostGroups.pm
          spong-server
          www-spong

FIXED - added eval block around status() to prevent program from dying if
it can't connect to spong-server

ADDED - added support for 'page' message type to spong-status.
 file - spong-status
        lib/Spong/Status.pm

FIXED - Added eval block around status() function to prevent program aborts if
spong-server can't be contacted.
  file - lib/Spong/Status.pm

FIXED - removed use Data::Dumper; statement from Host.pm
   file - lib/Spong/Host.pm

02/08/00
ADDED - Added time to live parameter for status update messages. 
   files - spong-server
           lib/Spong/Status.pm

ADDED - Added new spong-status program to allow update messages to be sent to
Spong server from scripts and other programs.
    files - spong-status

ADDED - Added new message type "event". This is similar to a 'status' message,
except an event message is only written to a host's history.
    files - spong-server
            spong-status
            lib/Spong/History.pm


02/07/00
ADDED - Added initial support for a new Overview displays. This command 
displays statuses by Host Groups. Currenly on standard type views are
supported.
  files - lib/Spong/HostGroup.pm
          lib/Spong/HostList.pm
          cgi-bin/www-spong
          bin/spong-server


01/30/00
FIXED - change print line in debug() method to print to STDERR instead of
STDOUT.
  file - lib/Spong/Log.pm

01/30/00
FIXED - spong-client.pid was being deleted instead of spong-network.pid if
--nosleep was specified.
   files - bin/spong-network.pl

01/03/00
FIXED - fixed problem with np_file deletion logic when $SEND_MESSAGE = "RED".

01/24/00
ADDED - New logging modules created. Logger is a generic logging class that can
log to syslog, stderr, stdout, and a file. Log is modules to encapsulate all
of the debug, error, and logging routines for spong program
   file - lib/Spong/Logger.pm
          lib/Spong/Log.pm

01/25/00
CHANGED - Modified spong-server to use the new Log module and enhanced 
logging routines. The --debug pararm now has an optional "debuglevel"
option to control the level of debugging output. "debuglevel" is an integer
that ranges from 1-9.

01/25/00
CHANGED - Modified spong-server to use Getopts::Long for parameter parsing. 
parameters are no longer position dependent.

01/24/00
FIXED - Fixed bug in services() and service_objects() method of ServiceList
class. They were returning undef instead of a null list if there are no 
service status files.

01/13/00
FIXED - hostname and service name were not being added to www-spong-ack URL on
Service Display web page.
   files - lib/Spong/Service.pm

01/06/00
FIXED - notification bug in spong-message where contacts without messaging
method would no receive notifictions.

01/06/00
CHANGED - The debug loggin code in spong-message has been changed to allow
the user to select how verbose the debugging output is.

01/04/00
CHANGED - Code for spwaning and handling child processes in spong-server has
been rewritten.  Update proceses can now be selectivedly turned off. The new
code will make scaling up easier.

12/28/99
ADDED - The status updates associated with History entries are now kept. They
are displayed by clicking the color icon or block in the first columns of
the History Display web page. It is controlled by the $STATUS_HISTORY variable
in spong.conf file.
   files - lib/Spong/HistoryService.pm
           lib/Spong/Service.pm
           lib/Spong/History.pm
           spong-server
           www-spong
           etc/spong.conf

12/27/99
ADDED - Added status summary line to image ALT text attribute to web pages
using IMAGES. On most browsers this will display the status summary line 
in a popup window when the pointer is over the status icon.
   files - lib/Spong/HostList.pm


Version 2.6 Changes

12/08/99
ADDED - Added data plugin mechanism to spong-server. This is a hook to 
the service status update to be used by output programs. Two sample plugin 
modules in contrib/plugins/spong-server are included. They both write data
to RRD Tool databases. data_rrd_disk logs usage for file system on a host.
data_rrd_la logs the load average, number of user and numbers of jobs.

12/07/99
FIXED - www-spong-ack was missing 'use Time::Local;' statement. This was 
causing web server error when an explicit date/time was used in the Duration
field. (Thanks to Jonathan Byrne)

12/06/99
CHANGED - Moved spong-cleanup's configuration parameters to spong.conf file.

CHANGED - Update documentation with new changes.

12/05/99
FIXED - Fixed bug in spong-message which cause contact with a delay and 
repeat attributes to be continually notified.

FEATURE - Added host_groups and exclude_host_groups matching to spong-message.
The hostname will be checked to see if it in any of the host groups defined
in host_groups and exclude_host_groups.

CHANGE - Moved the &load_msg_func() function from begging of program to
after the rules scanning. They messaging functions will now only be loaded
it there are notifications to be sent.

CHANGE - Create module Status.pm to encapsulate the &status() function.
Changed spong-network and spong-client to use the new package.
   files - lib/Spong/Status.pm
           spong-client
           spong-network

12/01/99
FIXED - Added error checking code to query process display routined. Querying
for invalid information caused the query process to crash.

11/27/99
CHANGES - Various documenation updated and additions.

11/24/99
FIXED - spong-network and spong-client had a wrong variable name in the
&status() function if the inet_aton() function failed. (Thanks to Tom Brown)
   files - spong-client
           spong-network

FIXED - Changed file permissions setting of CGI programs installation in the
'build' program. The CGI programs were installed with write permission for the
$WEB users in the build program. (Thanks to Tom Brown)

CHANGE - The uiowa.edu "Machine Info" link on the Web Displays has been 
replaced with a $WWW_ACTIONBAR_CUSTOM variable in the spong.conf configuration
file. If the $WWW_ACTIONBAR_CUSTOM variable is defined, the contents of
the variable will be included in the Display frame's Action Bar. Only
HTML code should be used in this variable.

11/22/99
FIXED - Some machines were core dumping in the spong-message program in the
&load_msg_funcs() procedure on a glob() function. This function loads the
messaging plugins from the library. The &load_msg_funcs was rewritten to 
use opendir() and readdir() instead of glob().

FIXED - spong-server had a bug in the --restart logic. It was not handling
the terminated of it's child processes correctly. The HUP handler function 
(hup_handler) was rewritten to waitpid() explicit on the child process pids,
instead of using the standard &chld_handler() function.

FIXED - spong-server had another latent bug in the &chld_handler function. 
It was not reinitializing the $SIG{CHLD} signal handler. This has to be done
on systems using System V based libraries.

FIXED - spong.conf.solaris had a bug if spong-client was not run as root. 
The &gets_swap() function called "swap -s" without an explicit path. The
fix was to call "swap -s" with the full path name to the swap command.

CHANGED - Changed the check_ntp network check to be a bit less draconian 
with a critical error. It will not only be a critical is the service is
not running. A yellow conditions will be reported if the time is more then
one second off or it the ntp server is not synchonized yet.
  files - lib/Spong/Network/plugins/check_ntp

11/15/99
ADDED - Added code to spong-server to have it automatically daemonize itself
and disconnect from the foreground. It is using a new Daemon.pm library 
module. 
 files - spong-server
         lib/Spong/Daemon.pm

CHANGED - The child process handle logic has been changed to better handle
termination signals. The child processes now exit gracefull.
 files - spong-server

CHANGED - spong-client and spong-network daemonize code has been replace with
the Daemon.pm module.

11/02/99
CHANGED - Changed daemonize code to use the POSIX setsid() function to become
session leader. Programs where not disconnecting from tty in FreeBSD.
 files - spong-network
         spong-client

ADDED - Added new OS configure. FreeBSD. The uptime program has weird 
behaviour when called with full path name.

ADDED - Added new client check 'check_mailq'. It checks sendmail mail queue
levels against $MAILQWARN and $MAILQCRIT. It uses $MAILQ as the command to
execute to display the mailq.  Added $MAILQ to all spong.conf files.

FIXED - spong-client program has a bug in the load_plugins subroutine. It was
trying to use $HOSTS from spong.hosts, but the program doesn't use spong.hosts.
Change the logic to look for $CHECKS in the spong.conf file instead.

11/01/99
FIXED - Fixed missing @@PERL@@ substitution variable for #! line of spong-clientand spong-network.

10/30/99
CHANGED - Added new client check plugin mechanism similar to spong-network. Client checks are now plugs that can be configured at runtime. Client plugs 
resident in the lib/Spong/Client/plugins directory. The current plugsin are 
the 'disk','cpu','processes','logs'. 

Spong-client now looks for a 'checks' field in the $HOSTS hash to see what
plugins to run. The syntax the the same as the 'services' field. If no
'checks' field is present, spong-client defaults to 'disk_space cpu_load
processes log_files' and &check_local if present.

 10/29/99
FIX - Fixed forking and signal login of spong-server to fork off properly
and terminate properly when signalled.

10/28/99
CHANGED - spong-network now, by default, forks, disconnects from the console
and runs in the background. spong-network will run in the foreground if the
--debug parameter is used.

CHANGED - spong-message has been enchanced with a new messaging function
plugin mechanism (like spong-network's). New messaging functions can be
added by adding the msg_* file into the lib/Spong/Message/plugins directory.
The old messaging functions converted use the new plugin mechanism, and a
couple of others have been added to show the full functionality of the
new code.

CHANGED - spong-message contact syntax has been enhanced to allow finer
control over the to whom messages are sent. Your can specify which message
function/carrier to notify rather than all of a $HUMANS defined notifications.
I.E.: 'sjohnson:email' or 'unix-oncall:teletouch' or 'thebosses:sprintphone'.
  Files - bin/spong-message
          etc/spong.message

ADDED - You now specify an initial delay before notifications are send out
(e.g. Don't page until a service has RED for at least 15 minutes). And you may
also specify a repeat interval for notifications after the initial notification
(e.g. Keep paging every 10 minutes until problem is acknowledged). The new
synatx is detailed in the comments of spong.message configuration file.
  Files - bin/spong-server
          bin/spong-message
          etc/spong.message

10/12/99
ADDED - NTP (Network Time Protocol) spong-network plugin. This plugin checks
the NTP offset of the server using the "ntpdate -q" command. If the ntpdate
checks returns "Server not suitable for sync...", the status is red. Otherwise
if the offset is not than one second the status is yellow.  A $NTPDATE variable
with the path to the ntpdate command must be added to the spong.conf
configuration file.

10/11/99
ADDED - Secure Shell (ssh) spong-network plugin. It checks whether the Secure
Shell service is running or not.

10/07/99
ADDED - A timestamp has been added to the services status file to track 
event duration. The start time of an event is defined as a when a change of
status for a service. A new field 'stime' (Start Time) has been added to
the Service.pm object. The display of the event duration has been added to
the Service::display_* routines for a full format displays.
  Files - bin/spong-server
          lib/Spong/Service.pm

10/06/99
ADDED - Added code to spong-client to allow it to fork and daemionize.
spong-client will not daemonize is run with --debug.


version 2.5 Changes

CHANGED - Updated basic help html files.

spong-server

ADDED - Code to handle purple colored service status files in the database. 
The start of code to allow spong-server to handle old status as a real 
status state.ADDED - Big Brother server emulation. The server can now 
handle Big Brother Clients. The emulation is not 100% percent yet. The 
client must be configured to use FQDN names. And the server can't handle 
PAGE commands.
ADDED - Added new a type of SEND_MESSAGE rule: RED-CHANGE. The spong-server 
will attempt to send out messages on any status transition to or from RED.
FIXED - Fixed problem with in save_acks with 2 acks bein created with-in 
the same second. The second ack would overlay the first ack with the same 
file name.

spong-client
CHANGED - The old log scanning code is gone. There is a new Object Oriented 
log scanning routine logmon.  logmon monitors the log file by monitoring 
the end of a file like "tail -f". Events are not reported over and over 
again until he file is rotated or edited. They will be reported for a 
specified period of time and then are discard. This does not work if 
spong-client is run with --nosleep from a crontab.
ADDED - Added new OS specified get_swap routines to check swap space levels 
in the disk checks.

spong-network
CHANGED - Change the check routines to a new plug-in mechanism. New checks 
can be added by writing a plug-in module and placing it in the plugin 
directory. The new service can be used by referencing in the spong.host 
file. spong-network will load the routine and it will be registered with 
the plugin registry.
ADDED - Added a new escalation mechanism to guard against transiant network 
problems. A RED status is not reported until a service for host has failed 
a certain number of times. Otherwise it is reported as a YELLOW status.
CHANGED - Added a loop to &check_tcp to check a service 3 time before 
reporting that it is down. This is guard against temporary network gliches.

spong-message
ADDED - Added new rules based messaging. The new code is configured in the 
new spong.message configuration file. The rules allow for host and service 
based include and/or exclusion, along with version flexible time and day 
selection. Multiple contacts can also be specified.

spong-ack
FIXED - Replace unreliable getlog() call with getuserbyname($<) to get user 
login name.
FIXED - Made sure to exit with a non-zero exit code on any errors. This is 
to make it more script friendly.
CHANGED - Change options processing to use GetOpts modules for to simplifiy 
checks.
ADDED - Added --batch parameter which forces program to print the ack. id 
instead of the more verbose output. This is to make it more script friendly.