
          Release Notes for Apcupsd 3.10.14

NOTE: The non-pthreaded version should work in this release, but
      will be removed in the next version.

Main Points:
- The NIS slave server code (net driver) should be much more 
  efficient and robust than previous versions.
- The code as a whole is much more resistant to buffer overflows
  since most all string copies are now protected.
   
Release 3.10.14 28Jul04
- Add workaround from Adam for linux/hiddev.h missing define.
- Bill King has made numerous changes to improve the code such as adding
  consts where appropriate.
- Add ./configure detection of nanosleep() and usleep()
- Updates to manual including fixing man page.
- Integrate patch for Mandrake apcupsd.in forwarded by David Walser.
- Found another store into the ups buffer so #ifdefed it. Cannot
  store into the ups buffer on non-pthreads systems.
- Fiddle with apcconfig.c to correct astrncpy() problem noted by
  Adam.
- #ifdef code in apcaccess that tries to write in the shared memory
  buffer.
- Applied Adam's patch for fixing the pthreads dependencies in asys.c
- Tweak the patch a bit hopefully so that OpenBSD will work.
- Made a sweep through quite a few files updating the copyright, 
  eliminating the disclaimer (now in DISCLAIMER), and adding as many
  astrncpy() and astrncat()s as I could find. There still remain some
  drivers and the cgi code to do.
- Implemented true/false and bool. Started implementing it in many of
  the files I touched.
- Updated the net driver and did a fairly good testing of it.
- Made apcupsd remain in the foreground when doing a kill power.
- Eliminated some of the error messages during kill power by not
  doing useless things.
- Added back code to print what is happening during kill power
  in the USB code.
- Corrected a few of the USB error messages that could have been
  missleading or confusing.
- Eliminated some inappropriate usages of size_t.
- Integrated a number of updates into the manual, particularly from
  Adam.
- Put wall as ${WALL} in platforms/apccontrol.in
- If the IP address is 0.0.0.0 force it to localhost in apcaccess.
- Integrate Thomas Habets' changes to keep connect() from blocking
  in apcnet.c so that apcupsd can service more slaves.
- Ensure that stdin/out/err are allocated in daemon_start() of apcuspd.c
- Update snmp.c with bug fix from Bacula.

Release 3.10.13 20Apr04
- Added code to support net snmp configured with --enable-net-snmp
  based on patch sent by Sander Siemonsma.
- Build smtp on Unix systems.
- Update to most current smtp and make it easier to configure
  for apcupsd or Bacula
- Start implementing native Win32 version.
- Rename cmd -> ups_event and cmd_msg -> event_msg
- Add user supplied code to make apcaccess read the conf file and
  self configure to proper port. Thanks to Martin Flack for this
  patch.
- Start simplifying the Copyright and making the dates current.
- Rework the net driver. It was really in poor shape.
- Replace sprintf with asnprint. Replace strcpy with astrncpy
- Apply a fix supplied by Jim Pick where syslog releases the
  usb port and then re-attaches it to /dev/log.
- I finally took a careful look at the old master/slave networking
  code as well as ran it here, and it was sadly broken. Hopefully
  this commit fixes the problems.    
- Fix a few string functions using the new routines.
- Added asys.c imported from Bacula, which contains a number of 
  simple system routines such as astrncpy(), ...

Release 3.10.12 04Mar04:
- Apply patch from Adam that fixes OpenBSD and FreeBSD pthreads 
  library bugs.
- William King has made a number of commits to bring the cgi
  html up to current xhtml standards -- many thanks.
- Add poll time to SNMP driver, and correct header file prototyping.
- Make usb driver sleep for 1 second then retry up to 10 times
  if the device cannot be opened. There are two such loops so in
  the event of failure, it will occur 20 seconds later. This
  allows time for the hotplug program to initialize the USB devices
  after a boot.
- Thanks to Joseph Sacco, we have Yellow dog support -- and he
  has tested and validated it!
- Integrated Joseph Sacco's yellowdog patch -- some done by hand.
- Fix a Makefile find that removes zero length files, which fails                 
  on some systems.
- Web site update.
- Turned on strict prototype checking.
- Changed start level from 20 to 60 to ensure that DNS is started. 
  Reported by David Walser.
- Remove some unused code in the snmp directory.
- Cleanup some compile errors in the snmp directory.
- Cleanup crap generated by doc book for web manual
- Move install.xml to install.kml and implement simpler html directives in
  docbook.  Modify Makefile to convert html back into docbook.
- Change references to serial port in apctest to device (USB included).
- Minor updates to the documentation from user input.

Release 3.10.11 26Jan04:
- Correct apccontrol script to remove extra ;; that I inadvertantly
  left the last release -- apparently that prevented proper shutdown.
- Updates to manual as requested by Adam and other users.
- Fix localtime_r in configure.in as reported with patch by Adam.
- Fixed bad html in multimoncss.c reported by an anonymous user.
- Added new Mandrake apcupsd.spec.in submitted by David Walser.
- Revert to using the old master/slave networking code bu default.

Release 3.10.10
- This version has an additional fix to the USB driver based on
  work by Adam Kropelin -- it limits the rate at which apcupsd will
  poll the UPS for the volatile data, which in turn reduces the possiblity
  of flooding the kernel with control messages (hide-core.c: control
  queue full ...".
- I added a new "offbattery" event that is only executed if the 
  "onbattery" event was executed. This should allow users to easily
  control what messages they get and by using the ONBATTERYDELAY the
  time on batteries before the onbattery event is notified. The code
  is untested, so any feedback would be appreciated.

Release 3.10.9
31Dec03
- Bartlomiej Krol found an unexpected interaction between the 6 second
  "debounce" code and the new ONBATTERY delay time that caused the
  USB and apcsmart drivers to sleep for a long time.
28Dec03
- Added upsBaiscOntrolConverveBattery change to smtp requested by
  Kastus Shchuka (kastus@list.sourceforge.net) 
- Move wall in killpower of apccontrol to after killpower to avoid 
  errors stopping script.
- Install apctest along with apcupsd.
19Dec03
- Added patch by Adam Kropelin that ignores invalid samples. This 
  eliminates the need for the wait, and seems to calm the system. Apparently, 
  even though apcupsd did not use the bad samples, it would break from the
  wait loop, and request an update, which gave even more bad samples. With
  Adam's patch the samples are simply dropped and we continue waiting (if 
  appropriate).  Thanks Adam.
18Dec03
- Add Slackware updated patch submitted by Andrei Mamontov
- Corrected the missing library dependencies in src/Makefile.in
  Thanks to Reg. Clemens for pushing me a bit on this.
24Nov03
- Added a ONBATTERYDELAY to the conf file. This is the time in
  seconds that apcupsd will wait after detecting a power failure
  until it sets the onbattery state.  If you do not want to be
  annoyed by short power outages (usually less than 10 seconds),
  set the ONBATTERYDELAY appropriately and comment out the
  powerout) "echo ...|wall" statement.
- I finally got the no driver configured error. It turns out that the
  Makefile detection of changes is all botched up. Since I don't understand
  how the author expected it to work, I used the sledgehammer approach and
  do a "make clean" on every ./configure.
- Replaced apcnet.c with Howard Wilkinson's new master/slave code. If
  anyone *really* needs the old driver, it is in src/apcnet.c.old
- Upgraded to Cygwin 1.5.5

Items to note:  !!!!!
- The default NIS port has changed from 7000 to 3551. Port 3551 has been
  officially assigned to apcupsd by IANA.
