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.