###################
NetSaint Change Log
###################

0.0.7 - 03/01/2002
------------------
- Bug fix in monthly log rotation
- Bug fix for state statistics calculation during clock skew
- Removed LIFO size restriction in logfile and history CGIs
- Bug fix in detection of circular service dependencies
- Bug fix in command file creation


0.0.7b8 - 12/02/2001
--------------------
- Bug fix for potential segfault in status CGI
- Embedded Perl bug fixes
- Embedded Perl documentation
- Mini embedded Perl testing program added to contrib directory
- Bug fixes in WAP and availavility CGIs
- Safer temp file handling (Sebastian Kramer)


0.0.7b7 - 09/29/2001
--------------------
- Fixed bug in PostgreSQL DB creation script
- Added meta tags to WML header in statuswml CGI to prevent caching
  of pages on WAP devices
- Corrected bug in host and service state statistics view in
  extinfo CGI
- Missing CONTENT_TYPE header fields from CGI POSTs are assumed to
  be "application/octet-stream" per RFC-2068
- More embedded Perl interpreter bug fixes


0.0.7b6 - 07/01/2001
--------------------
- Fixed bug with creation of lockfile
- Fixed memory leak with PostgreSQL backed (hopefully)
- Fixed (again) stats in availability CGI
- Two $$ can now be used as a way to escape a single $ in commands


0.0.7b5 - 06/11/2001
--------------------
- Fixed segmentation fault in outages CGI
- Fixed bug in monthly log rotation time calculation in CGIs
- Fixed display bug in availability CGI that affected state
  percentages for hosts in the hostgroup display mode
- Bug fixes in PostgreSQL code for comment and retention data
- Misc. minor bug fixes


0.0.7b4 - 04/29/2001
--------------------
- Embedded Perl interpreter enhancements
- Bug fix in notification timing
- Improvements to trends and availability CGIs
- Configure script modifications
- Internal snprintf() function was added for systems that need it


0.0.7b3 - 03/17/2001
--------------------
- Embedded Perl interpreter bug fix (which I caused in beta 2)
- Fixed bug where host/service state statistics were incorrectly
  inflated.  Retention data must be blown away in order to
  remove the incorrect times, unless someone writes a script...
- Added three auto-layout modes to statusmap CGI
- Added support for DB table optimization (i.e. VACUUM in pgsql)
- Fixed date/time format bugs in PostgreSQL code


0.0.7b2 - 02/28/2001
--------------------
- Embedded Perl interpreter bug fixes
- Minor configure script and Makefile changes
- Fixed bug where host notifications were sent out even in STANDBY mode
- Fixed bug where host notification interval was not always honored


0.0.7b1 - 02/18/2001
--------------------
- Tactical overview CGI
- Availability reporting CGI 
- WAP interface CGI
- Embedded Perl interpreter
- Forced service checks
- Acknowledgements without notifications
- Ability to schedule downtime for hosts and services
- Flap detection
- Custom intervals for notification escalations
- Auto-save of retention data
- Extended service information
- Service notification and execution dependencies
- Aggregated status data updates
- External command file now implemented as a FIFO
- Statusmap and statuswrl CGI rewritten to use user-supplied coordinates for drawing
- Database support for status, comment, extended, and retention data
- Lots of other little goodies..


0.0.6 - 11/02/2000
--------------------
- Patched daemon-init script
- Fixed small bug affecting state retention of services that were in 
  soft states
- Fixed bug with authentication requirements in outages CGI
- Fixed bug with host logic where hosts might not change from an unreachable
  state to a down state when their parent(s) recovered
- Fixed bug where service checks that timed out never had their results
  recorded properly and thus would never get rescheduled
- Fixed bug where service checks that timed out were never killed


0.0.6b6 - 09/24/2000
--------------------
- Patched drop_privileges() to set supplemetary group privileges properly
- Patches to subst and daemon-init scripts
- Fixed bug where trends CGI would go into infinite loop if log rotation
  was not used
- Commands that have a return code or 126 or 127 are now logged with a
  warning about potentialy missing scripts or binaries
- Added a check for NULL host name and service description in IPC message
  queue to avoid errneous warnings about results being found for
  non-existent services
- Services that are in an OK state are no longer escalated to a critical
  state (HOST_DOWN or UNREACHABLE) when there are host problems


0.0.6b5 - 08/26/2000
--------------------
- Added ability to remove host and service acknowledgements
- Services that have a notification interval of 0 (no re-notifications) 
  no longer generate warning during pre-flight check
- A read lock is now placed on the external command file while it is
  being processed
- NetSaint will now shut itself down if it cannot delete the command 
  file once it is done processing the contents
- Added a check for services that may become "orphaned" during
  normal operation
- Fixed a bug where a NULL host event handler caused a crash 
  whend debug options were enabled
- Patched daemon-init script to have correct location of log file
- Modified status CGI to only sound audio alert if there were 
  problems for hosts/services that had not been acknowledged
  already and that were not disabled
- Modified status CGI so hosts that have checks disabled have an
  icon displayed in the status detail view (like services)
- Fixed bugs in status CGI where link to extended info CGI was
  generated improperly for comments and disabled checks
- Minor patches to the popup window code in the status CGI to
  preserve hoststatus and servicestatus types


0.0.6b4 - 07/25/2000
--------------------
- Fixed bug where hosts that had no parents and were in a DOWN state
  were incorrectly listed as being UNREACHABLE
- Fixed bug in status CGI where host names were not being URL encoded
  properly
- Configure script and Makefile changes
- Patched daemon-init script to work on more platforms
- Added daemonchk and traceroute CGIs to contrib directory


0.0.6b3 - 07/09/2000
--------------------
- Fixed bugs in several CGIs where NULL hostextinfo entries were not
  being checked for properly
- Fixed bug in trends CGI where UNKNOWN service states were not being
  read correctly
- Fixed bug in status CGI where host names were not being URL encoded
- Patched drop_privileges() so that setgid() call works properly
- Minor Makfile patches and new daemon-init script
- Fixed bug where daemon mode was not setting a file lock on the lock
  file correctly
- Minor enhancements to the trends CGI


0.0.6b2 - 06/25/2000
--------------------
- Fixed a bug in host macro processing
- Added netsaint_user and netsaint_group directives to main config file
  to allow NetSaint to drop privileges on startup
- Default path to CGI config file is now the same as the other config
  files (/usr/local/netsaint/etc)
- Added $USERn$ macros
- Added resource_file directive to main config file for specifying
  files that contain $USERn$ macro definitions
- Misc. documentation bug fixes
- New docs on securing NetSaint
- Added "noheader" and "embedded" options to CGIs to remove top header
  and allow for embedding CGI output in other HTML pages via #include
  directives


0.0.6b1 - 06/11/2000
--------------------
- Multiple parent hosts may now be specified for each host definition
- Passive service checks
- Volatile services
- Optional host and service notification escalations
- Outages and trends CGIs
- Entry sorting and optional audio alerts in status CGI
- CGIs now use stylesheets
- Optional host and service state retention between program restarts
- Optional logging of initial host and service states
- Acknowledgement of host and service problems via the web interface
- Timeouts for service check, host check, event handler, and notification 
  commands
- Various macro changes
- A lot of internal code changes and minor bug fixes


0.0.5 - 04/26/2000
------------------
- No changes since beta 6


0.0.5b6 - 04/06/2000
--------------------
- Fixed a security hole where the lock file could be subject to a symlink attack
- Fixed a bug where NetSaint would loop continuously if it were restarted with
  configuration data that contained errors
- Changed the 'make uninstall' functionality to be less destructive
- Fixed a bug in the IPC message queue initialization code that could prevent
  multiple copies of NetSaint from being run simultaneously.


0.0.5b5 - 03/26/2000
--------------------
- Fixed a bug where notifications were prevented from being sent out
- Fixed a bug in the timeperiod scheduling code, which sometimes caused service
  checks to get rescheduled 24 hours too far into the future


0.0.5b4 - 02/21/2000
--------------------
- Fixed bug where the main config file could not be opened after a restart if a 
  full path was not specified when the program was first started 
- Fixed bug where state times for services on a host that was down or unreachable
  could become inverted 
- Fixed bug where plugin results from service checks were sometimes incorrect 
- Fixed bug where the lockfile was being deleted during restarts in daemon mode 
- A few other minor bug fixes... 


0.0.5b3 - 01/17/2000
--------------------
- Added sample event handlers and documentation on how notifications work
- Added ability to display only services with problems in status CGI 
- Added --with-gd-lib and --with-gd-inc directives to configure script for specifying
  location of GD library and includes 
- Modified configure script to detect proper method for grabbing the timezone string
- Fixed bug with processing of notification commands in contact definitions 
- Fixed bug where system time change resulting in segfault 
- Fixed bug with service status filters in status CGI that prevented services that were
  in a RECOVERY state from being displayed 


0.0.5b2 - 01/09/2000
--------------------
- Several bug fixes
- Added service_interleave_factor option to reduce load on remote hosts
- Added max_concurrent_checks option to limit load on local host
- Added service and host status type filters to status CGI


0.0.5b1 - 12/29/1999
--------------------
- Parallel execution of service checks
- Automatic log file roation
- Standy and active program modes for suppressing notifications
- External command interface for controlling NetSaint
- CGI command interface
- Host and service state statistics
- Extended information CGI
- 2-D status map CGI
- 3-D (VRML) status world CGI
- Moved staticlly created HTML files to a new configuration CGI
- User authentication/authorization in the CGIs
- Daemon mode
- NetSaint process checking in the CGIs
- Log file reversal in the CGIs
- Added global event handlers
- Overhauled the service and host check logic
- Fixed bug where NetSaint would kill itself
- Many other minor bug fixes


0.0.4 - 09/03/1999
------------------
- Fixed bug where unreachable hosts were incorrectly listed as being down
- Fixed typo in configure script that prevented the sample hosts config file
  from being generated correctly
- Fixed bug in the side.html.in file that prevented the status detail link
  URL from being generated correctly
- Fixed a bug in the CGIs where hostnames that contained a period were not
  processed correctly.



0.0.4b4 - 08/15/1999
--------------------
- Fixed bug in netsaint.c where last line of config files were being read twice
- CGIs now use full path when opening nscgi.cfg
- URLs to CGIs in index.html and side.html are now auto generated from the 
  configure script options (can be changed with the --with-cgiurl option)
- Added options to the history and notifications CGIs to allow for easier 
  viewing of different types of alerts and notifications
- Fixed a bug where NetSaint would not always restart or shutdown properly
  upon receiving a signal
- Fixed a minor bug in the calculation of the inter-check delay to use when
  initially scheduling service checks
- Added a function to cleanup zombie processes on a regular interval



0.0.4b3 - 08/05/1999
--------------------
- Removed a call to update_status_log() in monitor_service() where checks that
  had to be delayed would not get logged correctly.  This isn't really fixed, 
  the problem is just gone for now.  It will be fixed eventually...
- Fixed a problem in pre_flight_check() where not all errors would show a 
  problem when using the -v option
- Wrote my_strsep() function using source from glibc 2.x library because 
  Solaris is brain dead...
- The side.html distributed with 0.0.4b2 was missing the time periods bar,
  which is now fixed.
- Added a few more functions to cgiutils.c and tightened up the code for 
  reading/parsing files a bit, so as to avoid premature end of script errors 
  in the future
- Added missing -p argument to sample check_tcp and check_udp command 
  definitions
- Fixed erorr in sample host config file where contact definitions had only 
  one time period
- Added $(SOCKETLIBS) argument to Makefile for check_overcr plugin
- Added quotes around query argument in the check_log plugin
- Added a check for no supported options in the check_ups plugin
- Modified the code in main() to be a bit clearer



0.0.4b2 - 07/30/1999
--------------------
- Entries read from config files are now stripped of CR\LF pairs, spaces, and 
  tabs
- Added notification on recovery/down/unreachables options to host definitions
- Fixed a few bugs in the host check functions and made problem/resolution 
  detection a bit smarter
- Fixed a bug where hosts that became unreachable would result in two 
  notifications being sent out
- Fixed a bug where soft host problems were getting logged when they 
  shouldn't have been
- Expanded the functionality of the agressive_host_checking option to speed
  up host checks
- Added time periods to host configuration file
- Added a check time period to service definitions
- Added notification time periods to service, host, and contact definitions
- Added contact groups to service definitions
- Added time zone to date/time strings in CGIs
- Minor tweaks to the web interface
- Added more documentation and updated existing docs for 0.0.4



0.0.4b1 - 07/14/1999
--------------------
- Fixed bug in get_raw_command_line() where function was returning a pointer 
  to a variable declared locally
- Fixed a bug in monitor_service() where hosts were not being reported as down
  when they should have been
- Fixed a bug in host_notification() where previous state (instead of current 
  state) was  being used for notification type
- Added retry_interval option to service definitions to allow for 
  user-specified retry rates on a per-service basis
- A better web interface and new logo thanks to the help of Todd Wheeler
- Rewrote a lot of code behind the CGIs, making it easier to create custom 
  CGI displays
- Soft host errors are no longer recorded after host is already down "hard"
- Added agressive host checking option to try and make the logic behind host 
  status checks a bit more intelligent (and faster)
- Date/time stamps in log files have to changed to time_t format (seconds 
  since Unix epoch)
- Streamlined the main service check logic a bit and made it work with the 
  new host status types
- Modified router/host check logic to determine the status of a host (UP, 
  DOWN, or  UNREACHABLE)
- Replace on_local_net option in host definition with parent_host option
- Remove all local router variables and functions that were present in 0.0.3



0.0.3 - 05/21/1999
------------------
- Rewrote check_nwstat plugin to fix uptime and volume space errata
- Fixed problem w/ NetSaint hogging cpu time while it waited for child 
  processes to finish
- Incorporated check_swap and check_vsz plugins contributed by Karl DeBisschop
- Minor coding changes for better portability across other OSes



0.0.3b2 - 05/17/1999
--------------------
- Added the check_nwstat plugin
- Incorporated the netsaint_statd package contributed by Charlie Cook
- Incorporated the configure scripts contributed by Karl DeBisschop
- Fixed minor bugs with argument macro processing and contact notifications
- Added code to my_system() to prevent plugins from hanging NetSaint



0.0.3b1 - 05/10/1999
--------------------
- HTML pages can be automatically regenerated at startup
- Hardcoded path names for CGIs have been moved out to config files
- Added ability to specify multiple contact groups per each host group
- Added ability to log "soft" errors (i.e. host and service check retries)
- Increased number of argument macros to 16 ($ARG1$ - $ARG16$)
- Added host and service event handlers
- Maximum number of host check retries is now specified in the host definition
- Many other minor bug fixes and tweaks...



0.0.2p1 - 04/18/1999
--------------------
- Fixed problem with size of Changelog file in original 0.0.2 release
- Fixed a bug in parse_input() where service commands that contained equals 
  signs would get chopped off
- Fixed a bug in add_host() with DEBUG1 code causing compilation errors due 
  to a missing parentheses
- Fixed a bug in pre_flight_check() where NetSaint would return an error if
  you did not specify host check commands in host definitions
- Fixed current attempt/max attempts inconsistency for service retries
- Fixed bug in update_status_log() where host/service pair string matching
  prevented some services from displaying in the status CGI
- Fixed bug in status CGI where UNKNOWN status levels were not being counted
  in the status totals table
- Added HP printer plugin (check_hpjd)
- Added MRTG traffic rate plugin (check_mrtgtraf)
- Added Oracle database plugin (check_oracle) - Contributed by Jorge Sanchez
- Added Processor load plugin (check_load) - Contributed by Felipe Almeida
- Added documentation for host configuration file
- Reformatted documentation for plugins
- Added documentation on host/contact/service relationships
- Added some documentation explaining how NetSaint performs its monitoring
- Added compiler support for IRIX - contributed by Charlie Cook
- Modified pre_flight_check() to validate check commands used in service
  definitions
- Increased number of argument macros to 6 ($ARG1$ - $ARG6$)
- Added optional argument to check_ping plugin to allow for optional number
  of ping packets to send
- Many other minor tweaks...



0.0.2 - 04/10/1999
------------------
- Added host check and notification functionality, thereby aggregating
  mutiple service recovery/failure notifications when an entire host
  (that has several monitored services) goes down or comes back online
- Added option to not log host/service notifications 
- Added option to control notification interval for local router problems
- Added check_dns plugin
- Fixed a bug where custom status log location was not working properly
- Fixed a bug where the month was incorrect in the logs and status CGI
- Some minor tweaks to the HTML interface
- Added compiler support for HP-UX


0.0.1 - 03/14/1999
------------------
- Initial release


