0.45.0:

Mon Jun 11 15:31:29 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 * Final cleanup for release.

Sat Jun  2 01:24:34 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - docs/chroot.txt: new howto document for people who want to try running
   the model drivers and upsd in a chroot jail.  This is just an experiment
   of mine, but it seems to be working fine so far...

0.45.0-pre6:

Fri Jun  1 04:27:30 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - configure.in: --with-double-open now warns you.  If anyone is actually
   using this code, they need to make themselves known before the
   release of 0.45.1, since it'll be removed by that point.

Fri Jun  1 04:23:16 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - conf/Makefile.in: upsd.users is now installed

Fri Jun  1 04:19:33 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upsd: cleaned up the parseconf arg sanity tests

Mon May 28 20:56:46 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - powercom: fixed the TIOCMSET ioctl to use the pointer of the arg rather
   than the arg itself, and added some error checking to the ioctl calls.
   Reported by Igor Podlesny.

Mon May 28 20:43:27 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - sec: removed the // comments.  They are not portable.

Mon May 28 06:54:17 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - docs/*: updates and cleaning for 0.45.0 release

Mon May 28 05:43:04 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 * Miscellaneous filename changes: QUICKSTART is now INSTALL, and this
   file is now called CHANGES.

0.45.0-pre5:

Mon May 28 05:13:26 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - sec, upscommon: moved unlock_port() into the common code so it gets
   all the extra goodies that you need to compile uu_lock calls on FreeBSD.

Sun May 27 02:19:07 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - multimon, upsset: similar paranoia checks added

Sun May 27 02:14:55 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upsmon: paranoia checks for NULL values in conf parser

Sun May 27 02:12:35 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upsd: paranoia checks for NULL values in data obtained from parseconf

Sun May 27 01:55:10 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - Applied jumbo patch from John Marley to add SEC protocol support:

   - include/shared-tables.h: many new entries
   - include/shared.h: same
   - models/sec.[ch]: new driver

Sun May 27 01:23:22 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - various: time.h and sys/time.h are now included through an intermediate
   local include/timehead.h file since sys/time.h isn't always sufficient
   and sometimes you can't include both, either.

Sun May 27 01:15:16 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upsmon: the notify is now run if the first poll of a UPS is on battery.

 - upsmon: additional debug calls added

0.45.0-pre4:

Sun May 20 21:02:22 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - genericups: type 2 (APC with 940-0020B cable) now uses RTS as cable 
   power.  This still may not be enough to make it work on some systems.
   See the mailing list archives, especially this message:

	http://lists.exploits.org/ups/Apr2001/00030.html 

   I need to hear from the users of this cable to find out if this makes
   things better or worse.  My own cable was sacrificed during a bout 
   with the leatherman in an attempt to figure out what makes it tick.

Sun May 20 20:43:43 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - common: cfmakeraw() compatibility function added since the multilink
   driver uses it and it's not universally supported.  This is intended
   to help compiles on Solaris.  Solaris users, tell me if this doesn't
   work, and preferably send me a patch which fixes it.

   Reported by Marty Lee.

Sun May 20 20:34:59 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - newapc: open_serial() call removed from forceshutdown(), as the port
   is already open and trying to open it again fails.  Reported by
   John Pochmara.

Sat May 19 22:44:08 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - common, main, elsewhere: basename renamed to xbasename and configure
   no longer tests for it, since it tends to appear and disappear strangely
   depending on your C libraries.  Rather than try to figure out every case,
   I did the easy thing and renamed the stupid function.

Sat May 19 22:42:25 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - models/main, skel: upsdrv_makevartable - supporting code added to 
   replace the old varlist technique.  This makes it possible to detect 
   bad -x arguments that aren't expected by the driver.

Fri May  4 20:01:29 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upsd, mustekups, upscommon, mgeups, belkin, ups-trust425+625: same

Fri May  4 19:59:14 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upseyeux, mge-ellipse, common: more comment fixes

Fri May  4 19:54:08 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - main, toshiba1500: C++ comments removed

Fri May  4 19:04:48 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - skel: // comments changed to /* */ style for portability

Tue May  1 23:38:35 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upscommon: failure to open the UPS device will now present a verbose
   explanation of the situation to show what's going on with permissions
   and user IDs.  Suggested by Alan Kennington.

Tue May  1 23:22:43 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - common/configure.in: basename already exists in some C libraries, so
   we now test for it and don't try to compile a local copy if it's there.
   Reported by Alan Kennington.

0.45.0-pre3:

Tue Apr 24 00:18:50 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - new drivers: upsdrv_arg() dead code removed.  Also the usage and help
   was cleaned up to reflect the new -x design.

Tue Apr 24 00:04:52 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - models/main: redid the driver-specific argument parsing scheme 
   completely to get away from any command-line namespace issues
   and to allow a future config file approach.  The new technique is:

   /bin/model -x foo=bar

   The driver code can test to see if foo is set with testvar() or get
   the value of foo with getval().

Mon Apr 23 19:42:37 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upsset: added a configuration file enabler.  The program will refuse
   to run until you assure it that it has been secured.  See the stock
   upsset.conf for more information.

Mon Apr 23 19:07:27 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - common: writepid() variable renamed to make the intentions obvious

 - models/main: pid files now go back into the state path, as that's
   the only directory that they will be able to access when not started
   as root.  There is no reason to ever give the drivers root privileges now.

Mon Apr 23 19:05:50 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upsmon: fixed another bug where a command sent to upsd could follow
   a NULL pointer.  Spotted by Matthew Dharm.

Tue Apr 17 23:52:41 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - common: the default log target is now stderr.  background() takes care
   of switching to syslog for us.

Tue Apr 17 23:37:02 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - multilink: now creates a pid file.  Patch from Jason Thomas.

Tue Apr 17 23:29:45 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - genericups: applied patch from Theodor Milkov to add support for
   Repoteck RPT-800A and RPT-162A models as type 13.  Also see
   docs/cables/repotec.txt for cabling information.

Tue Apr 17 23:17:16 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upslog: pid file now written.  Reported by Dirk-Willem van Gulik.

Tue Apr 17 23:07:17 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upsmon: giving a bad command name with -c will now show the help
   text and stop, rather than starting upsmon again.  Fix from
   Andrew Delpha.

 - upsmon: added error checks to the FSD code to catch any future problems
   in this area.

 - upsmon: fixed a bug where "FSD (null)" would be sent if you were
   monitoring a UPS using the default scheme where you only give a hostname.
   Reported by Matthew Dharm.

Tue Apr 17 22:56:27 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - Four patches from Ben Collver applied:

 - mge-ellipse: fix warnings on non-i386 platforms [patch-ag]

 - upslog: fix warnings on non-i386 platforms [patch-af]

 - upscommon: cleans up the SHM_R define and explains the situation 
   better. [patch-ae]

 - conf/Makefile.in: installs new config files to <name>.sample 
   rather than directly to <name>. [patch-ab]

Tue Apr 17 22:53:36 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - multilink: new driver from Rick Lyons for Liebert UPS models with
   the multilink cable.

Tue Apr 17 22:51:33 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - scripts: new directories Solaris8 and SuSE-7.1 with helpful files
   from Sandro Wefel.

Thu Mar 29 00:54:32 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - configure.in: remove dead bitstring code

0.45.0-pre2:

Thu Mar 29 00:36:16 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - models/main: upsdrv_arg() added for handing args back to the driver.
   Drivers have to identify args that they want to see in *driver_arguments 
   with a getopt style string.

Wed Mar 28 23:16:38 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - bestups: added support for BATTVOLT

Wed Mar 28 23:14:38 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - upscommon: the normal getupsmsg function will now sleep when getmsg 
   fails.  This also sucked 100% CPU, but only on systems where the 
   message queues were unavailable at runtime for some reason.

 - upscommon: the getupsmsg stub will now sleep.  This had the potential
   to make the drivers suck nearly 100% CPU on systems without SysV 
   message queue support.

Wed Mar 28 22:59:10 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - models/Makefile.in: moved @SERLIBS@ up to LIBOBJ for consistency

 - models/Makefile.in: added include file that contains all the rules
   for the drivers.  This is generated automatically by genmb and should 
   not be edited directly.

Wed Mar 28 20:17:23 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - models/main: added upsdrv_banner() to restore per-model identifiers

 - models/main: pid files go in PIDPATH, not the STATEPATH.

Wed Mar 28 16:59:34 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - models: Beginning the merge of the new common driver design
   from oss-list-ups: bestups fentonups

 - main: new core for drivers

Wed Mar 28 16:49:45 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - continuing patches from oss-list-ups:

 - statedebug: only print the list when the shm buffer is updated
 - upsd: 'static' cleanups
 - upsd: new options:
     -f        - run in foreground
     -u <user> - switch to user <user> instead of root
     -V        - print version

Wed Mar 28 14:11:20 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - common: implemented the bitstring stuff with existing code from upsmon

Wed Mar 28 13:27:55 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - more patches from oss-list-ups:

 - various: switch to upslogx
 - various: clean up more function declarations with const
 - upsmon: catch SIGINT too
 - various: switch to fatal
 - various: add bitstring for logging control

0.45.0-pre1:

Tue Mar 27 15:54:47 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - upsset: temporarily disabled for a safer prerelease while working on
   a solution to the access issue.  If you want to test it, remove the
   exit code, but make sure you understand the problem first.

Tue Mar 27 14:41:01 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - statedebug: change to work with the new upsd header files

 - upsmon: clean up help text
 
 - upsct2: add -u <username> for unattended use

 - upsct2: switch to new USERNAME design

Tue Mar 27 14:36:47 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - upscmd: added -u <username> and -p <password> for unattended use   

 - upscmd: switch to new USERNAME design

   NOTE: this version of upscmd will not work with older versions of upsd
   since it expects the USERNAME call to succeed.

Tue Mar 27 14:33:55 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - upsset: abandon upsset.passwd and defer all access decisions to upsd.
   This fixes the silly problem where upsset.passwd had passwords in it
   and needed to be secure, but anything on the web server could read it.

   NOTE: if you are using upsset, you will need to change your configuration
   files around!  Users and passwords are now defined in upsd.users.

   Sanity checking has been added to the server communication code.

Tue Mar 27 14:29:35 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - upsd: split into upsd.c and user.c.  user.c has the support functions for
   the fine-grained user access from upsd.users.  This adds "USERNAME"
   to the network protocol, and allows you to control which instant commands
   are available, and whether a user may do SET.

0.44.3:

Thu Mar 22 14:41:45 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - various: documentation updates and cleanups for release

Thu Mar 22 14:24:19 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - configure.in/common: test for err.h and only #include it when it exists.
   This was making compiles fail on systems where the compatibility
   err/errx code was being used, but the header was still being included.
   Discovered through a report from Josh Chattin.

Sun Mar 18 23:05:05 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - Makefile.in: := switched to = in hopes of providing better portability
   for IRIX.  Spotted by Josh Chattin.

Sun Mar 11 14:20:07 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - configure.in: not having the group around is no longer a fatal error.
   You're still warned, but allowed to continue in case you know what you're
   doing.  Suggested by Luca Filipozzi.

0.44.3-pre6:

Sun Mar 11 11:11:40 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - common/err.c: compatibility functions err and errx for systems that
   lack them.  These have only been tested lightly on a somewhat broken
   Solaris account, so watch for anomalies if your system uses this
   version instead of one from your C library.

Sun Mar 11 10:44:54 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - More cleanup patches from "oss-list-ups":

 - upssched: change pipefd error check
 - common: fix basename
 - upscommon: remove useless code from nolongertimeout()
 - new-modules.txt: reflect new create_info design
 - models: writeinfo no longer needs an argument
 - models: switch perror+exit to fatal
 - genericups/upscommon: move open_serial_simple to common code

Thu Mar  1 05:36:18 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - configure.in: group testing code changed to work on Solaris boxes.

0.44.3-pre5:

Tue Feb 27 00:01:49 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - upscommon: drop a ; that was making upssend return too quickly

Mon Feb 26 22:25:31 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - Further cleanup patches from "oss-list-ups":

 - various: switch malloc to xmalloc
 - various: switch strdup to xstrdup
 - various: more string operations changed to strlcpy
 - various: #include <syslog.h> removed - common handles syslog now
 - common: xmalloc, xcalloc, xrealloc, xstrdup prototypes
 - various: switch to fatalx and upslogx
 - models: optimized setinfos (use setinfo format string directly)

Mon Feb 26 19:09:31 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - apcsmart: fix sendstring to send all 5 characters of one of the
   shutdown strings.  Reported by Karl O. Pinc.

Mon Feb 26 18:38:33 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - Continuing patches from "oss-list-ups":

 - various: switch strcpy to strlcpy
 - various: dump more unneeded strdups
 - various: sprinkle consts in function declarations
 - upslog: handle log (re)opening failures
 - common: add generic switch_to_user(user, group), vsyslog, upslogx,
           fatal, fatalx, xmalloc, xcalloc, xrealloc, xstrdup
 - models: switch to new 'format string' style setinfo
 - belkin: change to upssend
 - various: switch printf/perror+exit to err
 - bestups, engetron, toshiba1500: change to upssend
 - upscommon: setinfo now accepts a format string

0.44.3-pre4:

Fri Feb 23 22:51:21 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - upscommon: parent now exits with _exit() in background() to avoid
   tripping any atexit functions that may have been registered

Fri Feb 23 22:28:17 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - upsd: throw out some unnecessary newlines

Fri Feb 23 22:25:03 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - final mini patch:

 - common/Makefile.in: condense entries to a rule (tested on BSD make too)

Fri Feb 23 21:50:49 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - continuing the batch:

 - ups-trust425+625: dump installinfodirect, switch to setinfo
 - upsd: append \ns with strlcat, switch to errx

Fri Feb 23 21:33:22 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - applied another batch of mini patches from "oss-list-ups":

 - Makefile.in: echo subdirectory in build
 - switch to strlcpy:
    - upsfetch, upsimage, upslog, upssched
 - common: move basename to here
 - upscommon: make info local, don't pass it around with create_info,
   fix rtrim
 - models: remove local info and infomax, switch to new create_info call
 - models: dump unneeded strdups
 - models: dump all direct access to info[], change to addinfo/setinfo
 - models: remove local flag_timeoutfailure and upsfd

0.44.3-pre3:

Wed Feb 21 20:05:32 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - bestups: backed out a free(ptr) from the mega-patch that was
   trying to free something that wasn't dynamically allocated.

Wed Feb 21 19:39:28 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - common.h: #include <err.h> to squash some more warnings

Wed Feb 21 19:35:15 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - upseyeux: removed addcleanup() call

 - dummyups: removed addcleanup() call

Wed Feb 21 19:33:29 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - various: Applied mega-patch from "oss-list-ups":

   - rtrim() moved from individual driver files to upscommon.c
   - memory leak in rtrim fixed
   - strl{cpy,cat} added to common/ & configure.in
   - strn{cpy,cat} changed to strl{cpy,cat}
   - syslog format string problems fixed
   - more memory leaks fixed
   - create_info() now calls addcleanup()
   - addcleanup() removed from all drivers
   - a few functions changed to use const
   - upslog() added in common.c
   - strlcpy & strlcat files included

Wed Feb 21 18:56:59 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - upssched: squashed a warning on FreeBSD builds

Fri Feb 16 15:20:32 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - conf/Makefile.in: quick fix to lose a trailing space which was
   breaking the install target.

Fri Feb 16 14:26:43 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - mgeups: changed to use existing writepid() function.

Fri Feb 16 14:24:38 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - upseyeux: new driver for MicroDowell BBox models from Gilberto Iob.

Fri Feb 16 14:19:47 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - mgeups: new driver for MGE units from Ryan Murray, via Luca Filipozzi.

Fri Feb 16 14:17:14 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - nut.spec.in: update from Karl O. Pinc: BuildRequires update, man
   pages are now included

Fri Feb 16 14:12:51 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - upssched: applied patch from Steven Schoch that adds an "else"
   component to the CANCEL_TIMER directive.  If you specify this, it
   will be executed when CANCEL_TIMER fails to find an active timer.

Wed Feb 14 17:24:36 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - upsmon: write a pid file even when in debug mode so that -c can be
   tested in this state.

Thu Feb  8 16:15:19 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - apcsmart: the UPSTEMP test now sets "NA" in the temp variable first
   so failures can be detected.  Reported by Karl O. Pinc.

Thu Feb  8 16:05:40 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - newapc: %c changed to %s to avoid warnings from gcc.  
   Spotted by Shaul Karl.

Wed Feb  7 10:59:35 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - upsd: instant commands in the form <command>@<host> now work.
   Patch from Jeff Polk.

Sun Feb  4 00:40:25 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - dummyups: addcleanup() call added to remove lingering shm entry problem.

Sat Feb  3 23:35:52 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - genericups: type 12 changed to do the Back-UPS Office shutdown properly.
   Update from Peter ellis.

Wed Jan 31 23:05:04 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - common: changed the build process so the compatability modules will
   actually get built without GNU make.  This also is optimized so that
   unnecessary modules aren't built, bypassing the old "already defined"
   problems of before.  Patch from Ben Collver.

Wed Jan 31 22:51:12 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - upsd: don't keep reading a state file when INFO_MEMBERS isn't present.
   This is mostly to catch bogus things specified in the UPS directives.
   Caught by Peter Ellis.

Wed Jan 31 22:29:37 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - configure.in: changed the group code to automatically fall back to
   'nobody' from 'nogroup' if that group isn't found on the system.
   configure will also halt if the group that is selected doesn't exist,
   so you have a chance to clean it up before starting the build.
   Suggested by Andrew Ryan.

Wed Jan 31 22:04:48 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - mge-ellipse: new driver from Philippe Marzouk for the MGE Pulsar Ellipse.
   (mge-ellipse-nut-patch)

Wed Jan 31 22:02:40 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - genericups: new type 12 for APC Back-UPS Office support with the
   940-0119A cable.  Shutdowns may not work properly on this one yet.
   Update from Peter Ellis.

Wed Jan 31 21:56:58 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - upsmon.conf: elaborated on the MONITOR directive to show how the
   upsname, hostname, and port parts can be glued together.  Suggested
   by John M Vinopal.

Wed Jan 24 13:32:59 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - newapc: patch from Nigel Metheringham to stop some 0x4000 internal
   types from leaking into the info array. (nut-0.44.2-ito1.patch)

Tue Jan 23 14:59:30 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - various: Makefiles cleaned up

Tue Jan 23 14:46:55 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - statedebug: pulled this out of the mothballs and got it working with
   shared memory support and better parsing routines.  This may actually
   be useful now.

0.44.3-pre2:

Thu Jan 18 10:26:53 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - man/Makefile.in: fixed double-sourcing of $(INSTALLROOT).

 - Makefile.in: RUNUID/RUNGID switched to use the raw user/group names
   without trying to resolve them into a number.  This was causing problems
   on system where id behaves differently.  Reported by Andrew Ryan.

Thu Jan 18 10:21:46 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - upsmon: interprocess commands via signalling.  Right now you can do
   two things: 'stop' - stop a running process cleanly and 'fsd' - force 
   a shutdown of all master UPSes.  Use upsmon -c <cmd> to send the signal.

   Sending the signals manually (with kill) is possible, but not recommended.

   Hint: this is the key to early shutdowns for everybody that wants
   to do such things.  When the time arrives, do upsmon -c fsd and your
   systems will shut down just like a conventional "OB+LB" situation.

Thu Jan 18 10:06:14 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - upscommon: added the nonblocking open code to the serial port call
   so that we don't get stuck there.  Contributed by Ben Collver.

Wed Jan 17 16:40:47 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - upsmon: now drops off a upsmon.pid in PIDPATH, which by default is
   /var/run.  To change this, use configure --with-pidpath to change it.

Wed Jan 17 16:26:22 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - upsd: small changes to pass a -pedantic-errors compile run in gcc

Wed Jan 17 16:08:24 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - upscommon: moved the first open call to the serial port into an ifdef
   block that will default to off.  This should make NetBSD happier and
   get rid of some loony code at the same time.  If this breaks BSD/OS,
   try configuring with --with-double-open first to see if it works again.

   Compatibility problems on NetBSD spotted by Ben Collver.

Wed Jan 17 16:02:07 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - genericups: type 4 renamed to just "Generic RUPS model" since so many
   contact-closure devices out there use this type.  You can override
   this with -m and -M to make the status reports look nice.

Sat Jan 13 06:15:24 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - common/Makefile.in: cleaned up so that it never builds anything by
   itself.  This was causing "already defined" errors on some systems
   when building unneeded compatability modules.

Thu Dec 28 22:41:11 CST 2000 / Russell Kroll <rkroll@exploits.org>

 - upsmon: the "communications with UPS <foo> lost" no longer does its own
   syslog in addition to the NOTIFY_COMMBAD.

 - upsmon: NOTIFY_NOCOMM added.  If a UPS is unreachable for more than
   NOCOMMWARNTIME seconds, then it will generate that notifier every
   NOCOMMWARNTIME seconds until it is fixed.  This way you can't go very
   long with a dead upsd or similar problem without being aware of it.

Thu Dec 28 22:10:37 CST 2000 / Russell Kroll <rkroll@exploits.org>

 - apcsmart: applied patch from Daniel O'Connor which adds support for
   three variables: GRACEDELAY, RTHRESH, and ALRMDEL. (nut-apc-grace.diff)

Thu Dec 28 22:02:48 CST 2000 / Russell Kroll <rkroll@exploits.org>

 - upsd: shmctl failure messages from strerror() are now recorded.

 - upscommon: the code that complains when the state file can't be opened
   initially now gives some useful data, namely the current running user,
   rather than the one that was compiled in.

Thu Dec 28 21:45:51 CST 2000 / Russell Kroll <rkroll@exploits.org>

 * nut.spec related: this file now starts out as nut.spec.in and becomes
   nut.spec after the 'setver' target in the main Makefile runs.  This
   cleans up the horrible mess that was setver previously.

 - nut.spec: applied patch from Daniel Roesen to clean up version number
   handling.  (nut.spec.diff)

0.44.3-pre1:

Thu Dec 28 03:37:24 CST 2000 / Russell Kroll <rkroll@exploits.org>

 - common: added literal support to parseconf().  Now you can literalize
   anything, including spaces if you really want.  Example:

   The input buffer [1\2 3\ \\] turns into "12" and "3 \" ...

   Obviously, if you want a \, just put \\ in the string.  The literal
   feature is mostly intended for escaping quotes with \", but it happens
   to allow any character since it's easier to handle that way.

   It will catch a stray \ at the end of the line, too.

Thu Dec 28 01:12:02 CST 2000 / Russell Kroll <rkroll@exploits.org>

 - upsset: changed the hosts.conf parser to parseconf().  Same idea.

Thu Dec 28 00:49:27 CST 2000 / Russell Kroll <rkroll@exploits.org>

 - multimon: the hosts.conf parser now uses parseconf() too.

Thu Dec 28 00:38:03 CST 2000 / Russell Kroll <rkroll@exploits.org>

 - multimon: switched to parseconf() for the multimon.conf parser.  Threw 
   out parsefield() and redid readconf() so it's a lot easier to follow now.

   This does break the whole 'escape a quote with \"' thing temporarily,
   so be aware of it if you use any of those in your displays.

Thu Dec 28 00:26:21 CST 2000 / Russell Kroll <rkroll@exploits.org>

 - upsd: the config file parser now uses parseconf(), so all the goodness
   that comes from the new version is now available here too.  Also cleaned
   up some local brain damage in readconf().

Thu Dec 28 00:14:13 CST 2000 / Russell Kroll <rkroll@exploits.org>

 - common: entirely new state-machine-based parseconf() function.  This
   means that you can sprinkle tabs, spaces, and all kinds of other junk
   all throughout your config files and it'll still figure them out.

   Things inside quotes are still parsed literally.

   [    1     "2  3  4"  5] yields "1", "2  3  4", and "5".

   Obviously this only applies to config files which are parsed with 
   this function.  Right now that's just upsmon and upssched.

Wed Dec 27 20:45:06 CST 2000 / Russell Kroll <rkroll@exploits.org>

 - upsimage: if gd is missing, force an error so that users that missed
   the warning during configure see what's wrong.

0.44.2:

Wed Dec 27 19:28:12 CST 2000 / Russell Kroll <rkroll@exploits.org>

 *** Binary change notice ***

 * This is mentioned further down the file, but is repeated here for the
   benefit of people who only read the first page of such things.

   Certain things like upsmon and upsd may install into a 'sbin' directory
   on your system with this release.  If you use the stock paths, that
   means /usr/local/ups/sbin is the new home of those programs.  Be sure
   to update your startup scripts or you may run the old versions!

 * various: documentation updates and final housekeeping for release

0.44.2-pre4:

Fri Dec 22 13:01:58 CST 2000 / Russell Kroll <rkroll@exploits.org>

 - Applied patch from Nigel Metheringham (nut-0.44.2-pre3-itomod21.patch):

   - upsct2: new features:

     - -s can now take input in the form of <var>=<value> to allow
       non-interactive variable changing

     - -p <password> added, mostly for noninteractive mode

   - shared-tables.h: many more variables

   - shared.h: corresponding #defines for new variables

   - newapc: driver updates

   - nut.spec: new version

Fri Dec 22 12:40:59 CST 2000 / Russell Kroll <rkroll@exploits.org>

 - Applied patch from Mark Powell (nut-0.44.2-medp.patch):

Thu Dec 14 11:49:37 GMT 2000 / Mark Powell <medp@primagraphics.co.uk>

 - Changes to build on SunOS4
   - SunOS4 needs sys/ipc.h before sys/shm.h
   - models: SunOS4 doesn't have getopt decls in any header file, so added
     explicit declarations in common.h.
   - inet_aton.c: Added stddef for NULL and sys/types.h for inet types.
     Added a define for INADDR_NONE.
   - Added an atexit that calls on_exit.
   - Added a simple strerror derived from libiberty.
   - The CGI stuff probably won't build, I didn't try.
   - See README.sunos for an install procedure that works.
   - Fix install dir in man.

Sat Dec  9 21:57:46 CST 2000 / Russell Kroll <rkroll@exploits.org>

 - {clients|models}/Makefile.in, inet_aton.c: applied patch from 
   Ben Collver for compatibility with Solaris 5.x.  
   (nut-0.44.2-pre3-bens3.diff)

0.44.2-pre3:

Sat Dec  2 19:45:23 CST 2000 / Russell Kroll <rkroll@exploits.org>

 *** upsd and upsmon have moved! ***

 If you're used to finding them in /usr/local/ups/bin or similar,
 you will now have to start them from /usr/local/ups/sbin.

Sat Dec  2 19:33:11 CST 2000 / Russell Kroll <rkroll@exploits.org>

 - Applied patch from Nick Hibma:

   - upsmon: "Unable to login" now logged as ERR severity
   - upsd: "NULL password" warning now gets syslogged

Sat Dec  2 19:20:01 CST 2000 / Russell Kroll <rkroll@exploits.org>

 - nut.spec: new version from Nigel Metheringham

 - Applied patch from Nigel Metheringham (nut-stringlengths.patch)
   Patch notes:

   Basically I hit a problem where passing all the variables that
   the new APC driver knows about overran a pile of buffers.
   This replaces all the char x[256] with char x[SMALLBUF]
   and similarly for 512->LARGEBUF.  I have then defined these
   in common.h as 512 & 1024 respectively which gets me out of that
   hole, but we need to look at the string handling more generally

Sat Dec  2 19:18:08 CST 2000 / Russell Kroll <rkroll@exploits.org>

 - Applied patch from Nigel Metheringham (nut-script-changes.patch)
   Patch notes:

   There are now 3 RH scripts:-
        upsd - starts/stops the model driver and upsd
                also if called as "upsd powerdown" sends the
                power off signal to all attached UPSes
        upsmon - starts/stops upsmon
        upspowerdown - replicates all the functionality
                of /etc/rc.d/init.d/halt plus a callout to
                upsd powerdown at the appropriate point.
                This is *so* *ugly* but at least does the
                right thing

   Also moves upsd & upsmon to /usr/sbin where FHS says they
   should be.  upsd & upsmon start scripts are marco-ised and
   built by ./configure with right paths for things

Sat Dec  2 19:10:49 CST 2000 / Russell Kroll <rkroll@exploits.org>

 - Applied patch from Nigel Metheringham (nut-newapc.patch)

   - newapc: new table-driven driver for APC smart protocol units
   - variable information from upsd.h split into include/shared-tables.h
   - many more variables defined (shared.h, new-modules.txt)

   Patch notes:

   Adds a pile of new NUT variables for other things that the new
   APCs know about
   Splits some data from upsd.h into shared-tables.h so that other
   progs can use this data (I use it for error messages).
   Makes apcsmart handle large sets of variables
   Adds some minor debug bug fixes into upscommon
   Adds a new "newapc" driver which is a table driven UPS driver
   which attempts to determine the UPS capabilities and then
   report on those features.
   Having just looked at the patch I seem to have some superfluous
   crud in newapc.c (initial defines - but that can be cleaned up 
   later).
   I have been using this driver for around 6 months - it works
   *really* well.

Sat Dec  2 19:02:03 CST 2000 / Russell Kroll <rkroll@exploits.org>

 - apcsmart: applied patch from Patrik Rak:

   - the values for -s are now explained in the -h text
   - fixes a bug in shutdown type 1 (4 characters sent instead of 5)
   - there is now a type 3: force a power off with the grace period

Sat Dec  2 18:51:21 CST 2000 / Russell Kroll <rkroll@exploits.org>

 - apcsmart: applied patch from Patrik Rak that changes the behavior of
   -k slightly - it no longer requires an argument and can be placed
   anywhere on the command line.

Tue Nov 28 15:52:16 CST 2000 / Russell Kroll <rkroll@exploits.org>

 - upssched: PIPEFN in the config file will now set the filename used
   for the FIFO that provides the interprocess communication.

Tue Nov 28 15:03:42 CST 2000 / Russell Kroll <rkroll@exploits.org>

 - upsmon: debug mode now available with -d at runtime.  There is no 
   longer any need to play with #defines to enable and disable it.
   Suggested by Oliver Jones.

Tue Nov 28 14:23:43 CST 2000 / Russell Kroll <rkroll@exploits.org>

 - upsmon: new configuration directive to control NOTIFY_REPLBATT timing.
   If your UPS starts flying the RB flag, upsmon will only invoke that
   notifier every RBWARNTIME seconds.  By default this is set to 12 
   hours worth of seconds.

Tue Nov 28 14:19:49 CST 2000 / Russell Kroll <rkroll@exploits.org>

 - upsmon: MONITOR lines with missing arguments will now be discarded
   and a warning will be printed.  Previously it would segfault when
   trying to massage a NULL pointer.

Tue Nov 28 14:14:42 CST 2000 / Russell Kroll <rkroll@exploits.org>

 - apcsmart: BATTDATE: new read/write variable.  Use it to store the 
   date your battery was last changed for tracking purposes.  Guess who's
   battery turned 4 years old last month...

 - upsd: BATTDATE support

Tue Nov 28 14:00:55 CST 2000 / Russell Kroll <rkroll@exploits.org>

 - upssched: the temporary pipe is now unlinked when the server process
   ends to keep things relatively clean.  You can also use it to detect
   when a server process is running from a shell script or similar.

 - upssched: dumped the ntable[] from the header file so it is not
   restricted to a specific set of notify types.  Now, any valid notify
   type from upsmon can be checked in upssched.

Tue Nov 28 02:05:38 CST 2000 / Russell Kroll <rkroll@exploits.org>

 - docs: model-arguments.txt added to try to keep all these things together

Mon Nov  6 00:55:51 CST 2000 / Russell Kroll <rkroll@exploits.org>

 - fentonups: squashed a bug that reported the output voltage as the utility
   and vice-versa.  Reported by Damion de Soto.

Fri Nov  3 06:16:25 CST 2000 / Russell Kroll <rkroll@exploits.org>

 - docs/upssched.txt: documentation for the new program.

Tue Oct 31 16:50:15 CST 2000 / Russell Kroll <rkroll@exploits.org>

 - upsmon: if the final system() call to the shutdown command fails,
   we log something about it.  Suggested by Bill Richter.

Tue Oct 31 16:25:29 CST 2000 / Russell Kroll <rkroll@exploits.org>

 - genericups: the model and manufacturer strings can now be overriden with
   -m and -M, respectively.  Use this when you have a UPS that matches a 
   given type but has a different identification.

   The most common use will probably be with type 4 (RUPS cable), since
   many models use this cable but all of them aren't really by Centralion.

Fri Oct 27 15:01:09 CDT 2000 / Russell Kroll <rkroll@exploits.org>

 - upsmon: NOTIFY_REPLBATT added.  This event is used when a UPS reports
   a bad battery that needs to be replaced.  Necessity is the mother of
   invention - my 4 year old SU700 started flying the RB flag today.

0.44.2-pre2:

Mon Oct 23 23:27:00 CDT 2000 / Russell Kroll <rkroll@exploits.org>

 - genericups: reversed the sense of the ioctl return code checking.
   Previously it assumed every call was wrong.  Spotted by Eric Lawson.

Mon Oct 23 23:19:28 CDT 2000 / Russell Kroll <rkroll@exploits.org>

 - configure.in: added test for sys/shm.h to get upscommon compiling on
   normal systems

Mon Oct 23 23:10:23 CDT 2000 / Russell Kroll <rkroll@exploits.org>

 - Applied another compatibility patch from Ben Collver:

   - inet_aton compatibility function in common

   - scripts/Windows: halt utility so you can bring down Win32 systems (!)
     via upsmon.

Mon Oct 23 22:50:33 CDT 2000 / Russell Kroll <rkroll@exploits.org>

 - upsd: staleness warnings in the syslog now include some information
   as to why it happened.  Patch from Kenneth Porter.

Mon Oct 23 22:33:05 CDT 2000 / Russell Kroll <rkroll@exploits.org>

 - upssched: new 'client' program - actually a helper for upsmon.
   This program is responsible for handling things that happen at some
   point in the future relative to an event.  If you want to send a 
   message only after the UPS has been on battery for 30 seconds, this
   is what you want.

   Similarly, if you want to shut down the system after it's been
   on battery for awhile (before the auto low battery shutdown), this
   will also be how it happens.  The functionality in upsmon for the
   forced shutdown callback does not exist yet, though.

   Note that this is still in development and uses a hardcoded named
   pipe in /tmp right now.  You have been warned.

Mon Oct 23 22:06:58 CDT 2000 / Russell Kroll <rkroll@exploits.org>

 - upsd: added a workaround for ACLs using the /32 CIDR notation.  It
   turns out that the ((1 << 32) - 1) gets mangled nicely due to the
   limitation of the int and winds up as a 0.  Now it detects a /32 and
   just sets all the mask bits to 1, which is what we really want anyway.

Mon Oct 23 21:15:15 CDT 2000 / Russell Kroll <rkroll@exploits.org>

 - clients/Makefile: upsfetch.o doesn't need $(LIBOBJ) since it's 
   merely compiling a .c to a .o and isn't linking anything yet

 - Applied a jumbo patch from Ben Collver for HPUX support:

   - Lots more function checks in the configure phase

   - common.o is now expressed with LIBOBJ so we can add other support
     libraries to it

   - snprintf from the Samba project is now added (via LIBOBJ) when needed

   - proto.h is used throughout for common compatibility prototypes
     (snprintf again)

   - common: setenv now available for systems that don't already have it

 * Back to development.  I'm in Texas now (hence the 'CDT') for those 
   of you keeping track.

0.44.2-pre1:

Sun Sep 10 12:30:28 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - man/Makefile.in: cleaned up to use @mandir@ and copy apcsmart.8 over
   Use configure --mandir=<path> to put the man pages where you like them.
   Otherwise, they'll be in man/man8 under the base install path.

Sun Sep 10 11:55:59 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - bestuferrups: CTRL('q') -> 17, for portability (see below)

Sun Sep 10 11:42:36 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - man: updated powercom.8 and new apcsmart.8 man pages from Bill Richter.

Sun Sep 10 11:36:45 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - upsmon: NOTIFY_COMMBAD now exists.  Previously it was impossible to find
   out when the UPS had disappeared since no notify event was being
   triggered.  Found by Shaul Karl.

 - genericups: all calls to ioctl now check the return value and complain
   if anything seems amiss.  Suggested by Allen Mcintosh.

Sun Sep 10 11:33:13 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - genericups: tcsendbreak now uses 4901 as the interval, since the
   previous value of 50 was much too short.  Tested by Peter Astrand.

 - bestups: PR2 is now recognized as the Patriot Pro II.  Patch from
   "Mark".

Sun Sep 10 11:28:46 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - upsmon.conf: example SHUTDOWNCMD now has "" around it, since the new
   style parser splits lines by spaces unless the words are inside the
   quotes.  This caused the example command to lack arguments.  Spotted by
   Bill Richter.

 - apcsmart: the "BC" status following a front panel test on older
   Smart-UPS units (BC == all the LEDs are still on) is now ignored.
   Testing and other help from Bill Richter.

Sun Sep 10 11:13:50 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - upscommon: upsrecv will now dump the received buffer when upsc_debug
   is set, so you can see what's coming in.  Patch from Kenneth Porter.

 - toshiba1500: new model driver for Toshiba 1500 units from Kenneth Porter.

 - bestuferrups: new model driver for Best Power Micro-Ferrups from
   John Stone.

Sun Sep  3 19:22:06 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - upscommon: #error added for fringe conditions where HAVE_CFSETISPEED
   isn't defined.  Suggested by Kenneth Porter.

 - man/Makefile.in: new file with install targets for the man pages from
   Shaul Karl.

Sun Sep  3 19:10:17 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - models/Makefile.in: *.c added as a dependency for the $(PROGS).  This
   forces a recompile of all models when any of them change, but it beats
   the previous situation where *none* of them got rebuilt.

   Incidentally, things like this...

   $(PROGS): %: upscommon.o ../include/shared.h ../common/common.o %.c

   ... fix the problem perfectly on GNU make and fail miserably on BSD.
   Anyone have a portable solution?

Sun Sep  3 17:21:39 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - apcsmart: new shutdown command 2 will turn the UPS off completely.
   Use -k -s 2 to trigger. (Igor Khristophorov)

 - nut.spec: new version from Nigel Metheringham

Sun Sep  3 17:01:43 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - upscommon: the return value from shmget() is now checked rather than
   blindly handing it to shmat().  This should fix some SIGSYS errors on
   systems that lack SysV shared memory support.

 - upsd: switched the pow(2,x) to 1<<x and dumped math.h/-lm

Sun Sep  3 16:53:31 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - upsmon: pulled out the dupfds() now that background() does it for us

 - upscommon: background() now points fds 0-2 at /dev/null to keep them
   from being gobbled up by other accesses in the child process

Sun Sep  3 16:47:35 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - upscommon: background() now calls setsid() to establish a new session
   which should dodge signals that bring the programs down on some systems
   at startup.  Tested by Bob Pekarske.

 - packaging/RedHat/awkhaltprog: new helper script from Jon Nelson

 * various: changes to remove warnings and other problems when compiling
   with -Wstrict-prototypes -pedantic-errors

Tue Aug 22 19:26:14 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 * Notes on the security stuff: you can now run the models as one user
   and upsd as another, just as long as they both belong to the same group.
   This way, compromising upsd will not allow an intruder to access your
   serial ports directly.

   The easiest way to use this is to invoke the programs with su.

   models: su <user #1> -c <model and args>
   server: su <user #2> -c <upsd and any args>

   Make the serial port(s) owned by user #1, mode 0600.  Then make sure
   any old state files are cleaned out so they can be created with the
   proper permissions when the new versions start.

   You don't have to do this.  It's just a good idea.   

   Inspired by a post to the list by Daniel Roesen.

 - upscommon: various changes to support a better security model:

   - The state file is created with group read permissions

   - The SHM struct now has group read+write permissions

   - The SysV message queue now has group read+write permissions

0.44.1:

Tue Aug 22 18:23:37 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 * various: Documentation updates for release.

 - nut.spec: update from Nigel Metheringham

0.44.1-pre4:

Sat Aug 19 16:41:54 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - bestups: patch from Nick Allan to add SOLA 520 recognition.

Sat Aug 19 16:39:06 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - models/Makefile.in: applied patch from Bill Carlson to make this
   build without hand-hacking the Makefile.

 - dummyups.txt: documentation from Bill Carlson for this testing driver.

Sat Aug 19 16:34:45 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - powercom: applied patch from Shaul Karl with more options and features.

Sat Aug 19 16:27:01 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - nut.spec: applied patch from Bill Carlson to switch to --with-user and
   --with-group instead of the old uid/gid mode

 - configure.in: the default user when uu_lock is found is now uucp, 
   which makes more sense on FreeBSD systems.   

 - bestups: tcgetattr() now called to prep the struct which fixes a
   bug where it would fail to start on FreeBSD. 

 - bestups: also added tcset(i,o)speed calls to set the speed properly, 
   which is needed to make it run on FreeBSD

 - upscommon: changed to only call uu_lock once on FreeBSD systems

 - genericups: uses tcsendbreak() for portability when TIOCM_ST is the flag.

0.44.1-pre3:

Sun Aug 13 19:39:44 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - upsmon: worked around a problem where the syslog fd would get nuked
   by the dupfds() function so no logging worked after that point

 - docs/access.txt: changed the "which one comes first" section
   to match the update to upsd

 - upsd: reworked the access checking since it wasn't behaving properly.
   Now it checks for bitwise matches rather than just "is greater than"...

Sun Aug 13 17:32:09 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - upscommon: squashed a warning from a function that isn't used when
   shared memory is disabled.

 - configure.in: fixed a bug that crept in with the shared memory disable
   argument that forced the default mode (no arg) to also turn it off.

Sun Aug 13 17:08:52 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - nut.spec: restored after realizing that one of my 'make setver' 
   calls had blown it away previously...

Sun Aug 13 16:55:39 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - man/powercom: new directory with a man page for the powercom driver
   from Shaul Karl.

 - genericups: applied patch from Peter strand that makes TIOCM_ST work.

 - upsstats: "UPS Input" should no longer have that off by one error

Mon Jul 31 08:38:57 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - models/Makefile.in: put @SERLIBS@ back to fix compiles on FreeBSD.
   This fell out when the file was changed to use a combined rule
   for builds.

Mon Jul 31 08:12:06 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - models/Makefile.in: reworked to build with BSD make again

Sun Jul 30 13:06:09 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - fentonups: BATTVOLT and OUTVOLT are now supported

 - configure: ran autoreconf so --without-shared-memory actually shows up

Sun Jul 30 12:58:18 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 * Note to those using upsreadraw() from upscommon - the newline is no
   longer included in the buffer, so the "buf[strlen(buf)-1] = '\0'"
   junk can now be discarded.

 - upscmd, upsct2, upsmon: newline fixes

 - upsset: Fixed bugs that cropped up when the newline handling in
   upsreadraw() was changed.  Also fixed some bugs where a file handle
   was getting closed twice for some reason.

Sun Jul 30 12:30:10 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - apcsmart: BATTVOLT and OUTVOLT are now supported

Sun Jul 30 12:16:52 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - upscommon: reworked the serial locking code so it should be functional
   again.  The ports are also now opened with O_EXCL to keep other 
   processes from grabbing them.

Sun Jul 30 11:57:58 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - upsmon: the notifycmd script now gets UPSNAME in the environment too.

0.44.1-pre2:

Sat Jul 29 20:49:07 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - powercom: new model from Shaul Karl for PowerCom models.  Essentially
   this is the ups-trust425+625, only improved and with -k support.

Sat Jul 29 20:47:07 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - FAQ: added a note from Shaul Karl about the use of SIGPWR

Sat Jul 29 20:41:28 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - apcsmart: added the alternate cable support to forceshutdown()

 - apcsmart: now loops the GO_SMART / "SM" detection up to 5 times in
   the normal and shutdown init sequences.  This is needed because the
   lines in the alternate cable sometimes bounce which drops the
   response.  This change lets them calm down before giving up.

   Thanks to Dmitri Pogosyan for testing an earlier version of this.

Sat Jul 29 20:36:04 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - statedebug: patched by Jon Nelson to compile and run again

 - configure.ini: patch from Jon Nelson to switch off shared memory by
   using --without-shared-memory

Sat Jul 29 20:27:04 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - scripts/misc/wait4power: script from Peter strand to delay multi-user
   mode during boot until the UPS goes on line power.  This can be very
   helpful when the power keeps failing and the battery is depleted.

 - genericups: new type 11 for Powerware 3115 support.  Contributed
   by Peter strand.  Also see docs/cables/powerware.txt for hookup info.

Sat Jul 29 20:23:31 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - upsmon: patch from Shaul Karl to make the help string correct 

Sat Jul 29 20:20:25 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - optiups: new version from Ted A. Kuban, who is making it work properly

Sat Jul 29 20:16:35 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - nut.spec: update from Nigel Metheringham

Sat Jul 29 20:11:57 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - belkinups: new model for Belkin Smart-UPS units by Marcus Mueller.

Sat Jul 29 19:57:52 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - upsmon: changed the notifycmd semantics: (check your scripts!)

   Previously, the notifycmd program/script would get the message of the
   event all spread out through the args.  That's silly.  It now gets
   everything in arg 1.

   Also, for those who like to customize things, there is an environment
   variable called NOTIFYTYPE which will contain the type string 
   (ONBATT, ONLINE, etc) that triggered it.

   Finally, notifycmd only gets called for events that have EXEC set
   with NOTIFYFLAG.

 - upsmon: fixed a bug that would corrupt the password during logins.

 - upsmon: NOTIFYFLAG added to configure what happens during a NOTIFY event.
   See the example .conf as always.

 - upsmon: NOTIFYMSG makes more sense, so ignore the MSGLIST entry below

Sun Jul 16 11:25:34 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - upsmon: The messages that are sent by upsmon for different events can
   now be overridden with custom values from the config file with the
   MSGLIST directive.

 - upsmon: redid the config file parser with some new work in common.c 

Sat Jul 15 21:33:57 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - docs/access.txt: explained a subtle yet annoying problem that can
   occur when access levels are specified in a certain order.

0.44.1-pre1:

Sat Jul 15 21:12:17 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - upsmon: new switch: -i - for infinite looping after shutdown is called.
   Some systems display an ugly [FAILED] or similar when running the
   powerdown sequence since upsmon normally exits after calling shutdown.
   This switch will make it stick around so that it can be killed with
   everything else.

Sat Jul 15 21:05:51 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - upsd: no longer parses the upsd.conf with strtok.  This means it
   shouldn't clone data from one ACCESS line to the next, among other
   problems.  The jumping ACCESS-data bug was spotted by Ilia Baldine.

Sat Jul 15 20:49:02 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - conf/upsd.conf: reflects the new "extra data" for the UPS lines.
   You can now add argument information to them which upsd will ignore
   but startup scripts can use to invoke the model drivers.  This makes
   the configuration easier for package users, since you only need to
   specify those details in one place.  Patches from Shaul Karl.

Sat Jul 15 20:39:26 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - configure.in, Makefile.in, others: permissions are now based on the
   name of the user and group rather than the raw number.  The programs
   will now setuid() and setgid() based on the results of getpwnam() and
   getgrnam(), and the UID/GID values are no longer compiled into the
   binaries.  Patch from Luca Filipozzi.

Sat Jul 15 20:33:27 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - upsd: applied patch to add support to binding to a given interface
   with -i <ip>.  Contributed by Ondrej Kraus.

Sat Jul 15 20:26:50 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - engetron: no longer segfaults when called without a device name

Sat Jul 15 20:23:49 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - engetron: support for Engetron Jr models.  Contributed by 
   Adriano Roberto de Lima and Marcio Argollo F. de Menezes.

Sat Jul 15 20:22:29 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - Makefile.in: the nut.spec should now be generated sanely with
   versuffix instead of two 'version' values when setver runs.

Sat Jul 15 19:31:44 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - docs/protocol.txt: ERR UNKNOWN-COMMAND documented

 - upsd/upsfetch: "Unknown command" is now "ERR UNKNOWN-COMMAND" for
   consistency with the other errors in the protocol.

 - upsct2: also uses getpass() ala upscmd

 - upscmd: now uses getpass() instead of echoing the password to the screen

Sat Jul 15 19:22:24 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - conf/upsmon.conf: Documented the fact that you can have a power level
   of 0 and actually do useful things with it.

 - docs/genericups.txt: Type 10 didn't get included in here.  Fixed.

0.44.0:

Sat Jul 15 17:57:11 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 * Version bumped up and released.

0.44.0-pre5:

Thu Jul 13 16:28:08 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - upsmon: POLLFREQ/POLLFREQALERT were clashing in the config file parser.
   Found by Boris Popov.

 - models/Makefile.in: changed to call install once per file rather than
   sending it the whole list at one time.  Spotted by Lars Balker Rasmussen.

 - clients/Makefile.in: same fix

0.44.0-pre4:

Sun Jun 25 14:38:22 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 * Trimmed this file in an attempt to keep it from growing wildly.
   To go back further than this file covers, grab a 0.43.2 tarball.

 - upsmon: catch SIGQUIT and SIGTERM, then close fds before exiting
   Suggested by Boris Popov.

Sun Jun 25 14:28:45 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - genericups: Applied patch from Geoffrey Keating to fix the 
   constant "LB OL" reporting bug in the Cyberpower Power99 entry.

 - docs/powercom.txt: Added document from Shaul Karl with information
   on identifying PowerCom and related models.

Sun Jun 25 14:24:24 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - apcsmart: applied a patch for 940-0095B cable support from
   David Corbin.  Just add -c 940-0095B if you use one of these.

Sun Jun 25 14:08:40 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - Three Victron-related patches from Daniel Prynych:

 - victronups: use TIOCMGET/TIOCMSET rather than zeroing the flags.

 - genericups: New model (Victron Lite) support - number 10.

 - docs/cables/victron.txt: Cabling info for Victron models.

Sun Jun 25 13:54:52 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - upsd: Now checks for two arguments on the UPS config file entry 
   to hopefully cut down on support e-mails ...

Sun Jun 25 13:47:40 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - apcsmart: Fixed a bug where running with just "-d 0" or some other
   option without a device given would result in a segfault.  Spotted
   by David Corbin.

Sun Jun 25 13:42:06 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - upscmd: fix a segfault bug when encountering a UPS with no 
   instant commands

 - upsct2: Deal with "@ups" in RW variable list response from upsd

Sun Jun 25 13:37:27 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - upsct2: fix a bug where the RW variable list always came from the
   first/default UPS even if you specified a upsname@hostname form

 - upsct: same fix as upsc

 - upsc: deal with "no such variable" better - broken upsd config.

Sun Jun 25 13:29:30 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - docs/*, README: documentation updates to stay in sync with the code

0.44.0-pre3:

Sun Jun 11 18:31:18 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - bestfort: changed CTRL('q') around to be portable.  Linux libc5 
   doesn't like this, and other systems are likely to complain too. 

Sun Jun 11 17:52:54 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - models/mustekups: new driver for Mustek Electronics units from
   Jeremy Maccelari.

Sun Jun 11 17:48:35 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - Makefile.in: setver target updated to handle the new style nut.spec.

Sun Jun 11 17:26:06 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - models/bestfort: new driver for older Best Fortress models added.
   Contributed by Grant Taylor.

 - models/Makefile.in: reworked this to use a generic target of *.c to
   make it a lot easier to maintain.

Sun Jun 11 17:10:14 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - docs/access.txt: updated to reflect the return of the MASTER level.

Sun Jun 11 17:02:20 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - upsmon: Figured out the master setting problem, so it's ready for
   a testing release.  Note that the MASTER security level is back, so
   check those syslogs after firing this thing up.  If it complains, 
   edit your upsd.conf and grant it "master" access, not just "login"!

Sun Jun 11 16:47:04 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - fentonups: fixed the "setinfo: can't find type 1" which means this
   model again has a valid INFO_MFR setting.

Wed Jun  7 19:08:39 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - CREDITS: relearned my ABCs and alpha sorted the thing properly.

Sun Jun  4 12:53:21 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - upsmon: shutdown code re-enabled with the new multi-UPS design

 - upsmon: FSD in the status is now recognized and treated as a critical UPS

Sun Jun  4 11:24:36 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - apcsmart: expanded capabilities buffer from 256 to 512 chars to handle
   large strings returned by newer APC models.  Found by Nigel Metheringham.

 - packaging/RedHat/nut.spec: replaced with fresh version from 
   Nigel Metheringham.

Thu Jun  1 20:06:44 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - upsd: FSD now supported for multi-UPS forced shutdown handling

   Let's say machine A draws power from UPS 1 and UPS 2.  UPS 2 goes
   critical and machine A can no longer run, so it shuts them down.
   Now let's say machine B is also plugged into UPS 1.  Without FSD, 
   it'll barrel right on with no idea that A is about to command it off.
   With this code, it'll shut down before anything bad happens.

   This is only really useful with mixed power environments right now.

Thu Jun  1 19:23:34 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - bestups: Applied patch from Jon Nelson to map "PRO" to "Patriot Pro".

Mon May 29 13:58:27 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - upsmon.conf: documented DEADTIME and fixed the documentation for
   SHUTDOWNFLAG - it's not just for simple signalling models...

Mon May 29 13:49:07 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - upsmon: DEADTIME added.  This defines how long a UPS may go stale 
   before it's considered dead.  This is similar to the staleness controls
   in upsd itself, but this one is a bit more important.

   Specifically, any UPS marked "dead" will be upgraded from a low battery
   status to a low battery + on battery.  If this causes the overall power
   value to drop below the minimum, the system will be shut down.

   Note: this does not mean that killing upsd or temporarily disconnecting
   the serial cable from your UPS will shut down the system.  You have
   to do something like that while running on battery for it to trigger.

   My advice is to leave those things alone when running on battery...

0.44.0-pre2:

Mon May 29 13:12:02 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - upsmon: a few more debug-scaffolding things have been tweaked while
   working with the dummy driver.  This program still isn't ready for
   prime time, so the warning from -pre1 applies.

Sat May 20 14:37:32 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - upsmon: more multi-UPS development.  Things get interesting when a 
   UPS that's providing a critical source of power disappears on you.
   More work in this area is needed.

Sat May 20 13:50:57 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - models/: new "driver": dummyups

   This program will create a fake UPS that you can use to test things
   without subjecting your real UPS to a battery drain.  This is mostly
   due to the upsmon testing, but other people may find it useful.   
   It uses Xdialog for the interface.  You can get it at this site:

   http://xdialog.free.fr/

   Note that this program is not built automatically.  You must
   make dummyups by hand in the drivers subdirectory.

Sat May 13 13:36:15 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - upslog: %ETIME% now available to print the epoch time.  Suggested
   by Chad Madison.

0.44.0-pre1:

Sun May  7 15:19:23 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - configure.in: changed with-driverpath to with-modelpath for consistency.

   Various other changes to make the INSTALLROOT= stuff work cleanly.
   Basically, you can do 'INSTALLROOT=/foo/bar make install' and it'll
   all land in the directory trees *under* /foo/bar.  Then you just 
   build a package in there and it's done.

Sun May  7 14:25:40 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 * BIG "I told you so" WARNING: upsmon is purposely broken for this
   prerelease.  It's either that or keep you guys waiting another week.
   You can remove the exit(1) in main and try out the multi-monitoring
   code, but realize that it _will_ _not_ _shut_ _down_ the box!

   So, don't kill off your 0.43.2 upsmon binaries!  "make install" has 
   been tweaked to not copy it over, so you're safe there.

   You have been warned!

Sun May  7 14:10:46 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 * Applied a jumbo patch from Nigel Metheringham:

   - INSTALLROOT added to the Makefiles so a relative install is now 
     possible.  This should be useful for packaging the program.

   - configure now accepts --with-driverpath to install the model drivers
     somewhere other than the normal "bin" directory.

   - configure --with-cgipath lets you move the CGI binaries somewhere else
     without affecting the other binaries.

   - The other UPS drivers now have the -d <num> option to define how 
     long to wait before powering off.  This was originally only in
     apcsmart.  -d0 will exit without waiting.

   - The RPM spec file has been reworked into three packages:

     nut        - client software
     nut-server - server software
     nut-cgi    - CGI tools

     Incidentally, there is no "official" maintainer of the spec file
     yet.  If someone wants to take care of it formally, let me know.
     Right now it's just been slapped together from contributed patches.

   - The RH6.0 scripts have been updated to handle powerdown situations.

   - apcsmart: Capability strings > 256 chars (SU1000RMI2U units) 
     are now handled properly and checking code has been added to 
     handle future overruns.

   - apcsmart: Alternate shutdown sequence is available with -s for these 
     newer models which have a different kind of race when power returns 
     at the worst possible time.

Sun May  7 13:54:55 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - ups-trust425+625: added a dire warning about this driver being
   unsupported.  It's been largely unchanged since before the -k 
   code went into the other drivers (August 1999, see older Changes
   entries) and has some other problems (battery %) too.

   Hopefully someone using this driver will step up and adopt it.  I
   don't have that kind of hardware here, so fixing it is basically
   not an option for me.

Thu Apr 27 07:30:58 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 * New mailing list: upsdev@lists.exploits.org.  Discussion there 
   is focused on development issues.  The usual ups@lists.exploits.org
   address should be used for normal support items.

   Contact majordomo@lists.exploits.org to subscribe.

Wed Apr 26 18:42:27 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - configure.in: Applied patch from Bill Carlson to fix the linking issues
   on RH6 boxes for gd.  They need libX11 and libttf sometimes, and this
   new patch only puts them in when needed.

Sun Apr 23 18:13:31 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - upsmon: major overhaul begins.  Systems to monitor are now listed in
   the upsmon.conf, and have a number of additional details such as their
   "power value" - number of power supplies they run.

Sun Apr 23 15:32:19 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - upscommon/all models: send/recv changed to upssendchar and upsrecv to
   avoid stepping on NetBSD libc functions and other possible namespace
   conflicts.  Suggested by Will Ferry.

Sun Apr 23 14:33:24 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - apcsmart: added handler for when some models ignore ^Z.  Tested and
   contributed by Will Ferry.

0.43.2:

Sun Apr 16 19:51:27 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - apcsmart: Fixed a small problem where INFO_STATUS would have bogus
   information for about a second upon startup.

Sun Apr 16 18:02:29 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - nut.spec: updated version from Andreas Piesk.  This file still needs
   an "official" RH user to keep it sane.  I have a lot of systems, but
   nothing running Red Hat, so it can't be tested from this end.

 - apcsmart: applied a patch from Andreas Piesk to clean up double help text

Sun Apr  9 14:43:52 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - genericups: Updated type 1 so it's only a 0095A/C type cable support
   with the right flags for low battery detection.  For some reason, the
   940-0095B cable provided with my Back-UPS Pro refuses to change state
   when the UPS hits low battery.  Very strange.

   Low battery flag problem spotted by Jirka Chraska.

Sun Apr  9 14:19:43 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - apcsmart: fixed a few init-time errors - some calls were sending the
   wrong request characters to the UPS...

0.43.2-pre2:

Sat Apr  8 15:53:14 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - apcsmart: lengthened the delay between characters for the OFF command
   so it should work predictably now.

 - upsd: corrected a bug keeping instant commands from working that was
   caused by an earlier cleanup and referencing a now-unused variable.

Fri Apr  7 21:09:52 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - apcsmart: CMD_OFF must now be reissued after 3 seconds but before
   15 seconds have passed to be sure it doesn't happen accidentally.
   This was put in since it's going to be *very* easy to hit that 
   choice in the web controller, and I'm not about to kill my production
   machines during testing.

   If this bugs you, #undef CONFIRM_DANGEROUS_COMMANDS in apcsmart.h.

Fri Apr  7 20:54:25 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - upscommon/apcsmart: addenum added to handle the varying amount of 
   options being returned by APC's product line.  The number of options
   for a given option are no longer hardcoded to 4 - rather, it's whatever
   the UPS returns, which is far saner.   

Thu Apr  6 13:49:04 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - upsset: added the description fetching code so the command chooser
   says things like "Start battery test" rather than "BTEST1".

Tue Apr  4 10:55:41 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - upsset: added instant command listings and a "function" selector
   to the bottom part where you choose a UPS so you can get there.
   Note that you can't actually invoke the commands with this thing yet.

 - upsset: cleaned up error pages to use a common function

Tue Apr  4 09:04:06 MDT 2000 / Russell Kroll <rkroll@exploits.org>

 - upsmon: Should no longer proclaim "startup successful" twice now.

 - genericups: Now handles "missing shutdown flags" situations better
   and doesn't print a false warning on certain models.  None != undefined.

 - upsmon: Telling strchr to look for \0 is generally a bad idea.  Fixed.

Wed Mar 22 19:51:19 MST 2000 / Russell Kroll <rkroll@exploits.org>

 - conf/upsd.conf: There's now a stock UPS entry to hopefully catch people
   who install the software and try to run it without editing the
   configuration files.  It happens.

Mon Mar 20 14:15:03 MST 2000 / Russell Kroll <rkroll@exploits.org>

 - apcsmart: Added another short delay to the setident() function so
   that older models (that Matrix-UPS of mine again...) won't drop the
   next command byte.

Mon Mar 20 14:05:01 MST 2000 / Russell Kroll <rkroll@exploits.org>

 - apcsmart: now recognizes older Matrix-UPS units automatically

 - apcsmart: capabilities reworked to handle older units better and
   cut down on some wasteful code.

 - upscommon: new function - setflag() - for changing the flags after adding.

0.43.2-pre1:

Sun Mar 19 15:12:12 MST 2000 / Russell Kroll <rkroll@exploits.org>

 - multimon: removed strtok() in the FIELD parsing code.

Sun Mar 19 15:01:23 MST 2000 / Russell Kroll <rkroll@exploits.org>

 - clients/*: switched from strtok() to strchr() in most of the code.

 - upsset: fixed a cosmetic bug where the table with all the dropdown
   boxes was left-justified and looked strange when the dropdown box
   for host names was wide enough.

Sun Mar 19 14:18:05 MST 2000 / Russell Kroll <rkroll@exploits.org>

 - upsd: switched every call to strtok() around so now it uses strchr.
   That lingering pointer in strtok is just a problem waiting to happen
   if a nested call should ever arise.

   Also cleaned up a lot of <varname>[@<upsname>] parsing into a common
   block of code for readibility and to save space.

   During this cleanup, a few small memory leaks (strdups without frees)
   were spotted and exterminated.

Sun Mar 19 13:46:53 MST 2000 / Russell Kroll <rkroll@exploits.org>

 - models/: Added the experimental ipt-anzen driver from Travis Tabbal.
   This looks similar to the Opti-UPS protocol, so it may be a solution
   for supporting those models eventually.

 - genericups: Added 940-0023A cable support as type 9.  Thanks to
   Alissa Rogers for testing this one out and providing the right flags.

Sun Mar 19 13:02:26 MST 2000 / Russell Kroll <rkroll@exploits.org>

 - models/: Added the victronups driver from Radek Benedikt.

Sun Mar  5 19:51:42 MST 2000 / Russell Kroll <rkroll@exploits.org>

 - clients/cgilib.c: changed extractcgiargs() around so it can now handle
   variables without values.  Previously it would print an error which
   makes most web servers choke since it's before the Content-Type header.

Sat Feb 26 21:37:05 MST 2000 / Russell Kroll <rkroll@exploits.org>

 - conf/Makefile.in: The path should be $(CONFPATH), not $(BASEPATH)/etc.
   Spotted and fixed by Luca Filipozzi.

0.43.1:

Tue Feb 22 13:16:44 MST 2000 / Russell Kroll <rkroll@exploits.org>

 - apcsmart: minor code cleanup to not pass an unused variable

 - fentonups: the NULL entry now has all the right initializers

0.43.1-pre1:

Sun Feb 13 20:16:37 MST 2000 / Russell Kroll <rkroll@exploits.org>

 - upslog: applied patch from Matthew Gabeler-Lee to support customizable
   log formats.  This means it'll work on models without temperature
   readings, among other things.  The old format is also available for
   compatibility with existing setups.

Sun Feb 13 20:06:16 MST 2000 / Russell Kroll <rkroll@exploits.org>

 - conf/Makefile.in: files with passwords and other sensitive data are
   now installed with a mode that should keep prying eyes away.

 - bestups: added CMD_BTEST0 support.

 - fentonups: added CMD_BTEST0 support.

Thu Feb 10 14:35:35 MST 2000 / Russell Kroll <rkroll@exploits.org>

 - configure.in: Disabled the -lXpm checks since it was linking in
   that library on every system with libXpm.a rather than just those
   that actually need it for gd.  This needs to be rewritten to only
   trigger on those specific systems.

 * Switched to using install rather than cp and mkdir.

Thu Feb 10 12:35:57 MST 2000 / Russell Kroll <rkroll@exploits.org>

 * The source tree now sports a common directory.  This is where some 
   of the duplicate functions like background() will live.

Thu Feb 10 12:29:01 MST 2000 / Russell Kroll <rkroll@exploits.org>

 - apcsmart: cleaned up CAL0/CAL1 so you can't stop calibration when
   it's not running, and you can't start it when it's already running.
   The reason - APC uses the same character to toggle calibration mode.

Sun Feb  6 21:34:25 MST 2000 / Russell Kroll <rkroll@exploits.org>

 - upsd/apcsmart: Also added CMD_CAL0 and CMD_CAL1 - stop/start calibration.

 - upsd/apcsmart: CMD_OFF and CMD_ON now supported - instant ON and OFF.
   Yes, this does mean you can kill your load remotely now if desired.  
   Use with caution.

Sun Feb  6 21:12:24 MST 2000 / Russell Kroll <rkroll@exploits.org>

 - apcsmart: 'silent fail' models now get instant commands.
 
 - upsd: bugfix: SET with no arguments no longer crashes the program.
   You'd need manager access to do this via a raw telnet, but it's 
   still annoying.

 - upsset: sscanf is no longer used on network data here either.

Sun Feb  6 20:39:55 MST 2000 / Russell Kroll <rkroll@exploits.org>

 - upsd: sscanf is no longer used to parse network data.  Yikes.

Sun Feb  6 20:19:14 MST 2000 / Russell Kroll <rkroll@exploits.org>

 - configure.in: --enable-celsius is gone (it was previously depreciated)

 - upsstats/multimon: USE_CELSIUS is gone.  Use TEMPC or TEMPF in your
   configuration files to force the use of one scale or the other.

 - multimon: Added handling for a condition where hosts.conf doesn't
   exist - it now returns a proper error rather than dying miserably.
   Spotted by Jirka Chraska.

0.43.0:

Sun Feb  6 15:13:39 MST 2000 / Russell Kroll <rkroll@exploits.org>

 - upscmd: fixed a bug where trying to list instant commands on a UPS
   without any would cause a segmentation fault.

0.43.0-pre3:

Fri Feb  4 08:01:12 MST 2000 / Russell Kroll <rkroll@exploits.org>

 - bestups: fixed a bug that cropped up after the info access cleanups
   that caused MFR MODEL and STATUS to be blank.

Thu Feb  3 15:00:30 MST 2000 / Russell Kroll <rkroll@exploits.org>

 - docs/: updates to various documents to stay synced with the source

Tue Feb  1 19:27:01 MST 2000 / Russell Kroll <rkroll@exploits.org>

 - genericups: similar info[] cleanups like the bestups driver below

 - bestups: removed direct access to info[] in favor of addinfo/setinfo

Tue Feb  1 19:18:26 MST 2000 / Russell Kroll <rkroll@exploits.org>

 - fentonups: cleaned up the "Unknown" detection code and the info[] 
   access calls in general.

Tue Feb  1 18:53:39 MST 2000 / Russell Kroll <rkroll@exploits.org>

 - apcsmart: info[] access cleanups to compliment the upscommon changes.

 - upscommon: create_info() now clears out the array and sets member 0
   to INFO_MEMBERS (the max count).  This gets rid of a lot of duplicate
   code in the models.

Tue Feb  1 18:39:45 MST 2000 / Russell Kroll <rkroll@exploits.org>

 - upsd: fixed a small cosmetic bug when it did syslog before openlog
   at startup, giving us things like this:

   syslog: Data source for UPS [bup280]: SHM (11649)

 - fentonups: LOWXFER and HIGHXFER should only show up when a model is
   found in the table (see .h file) and not when it's merely "Unknown"

 - bestups: support for BOOST and TRIM based on the nominal input 
   voltage added.

0.43.0-pre2:

Tue Feb  1 18:05:05 MST 2000 / Russell Kroll <rkroll@exploits.org>

 - bestups: added the BTEST1 instant command

Tue Feb  1 15:50:33 MST 2000 / Russell Kroll <rkroll@exploits.org>

 - fentonups: Added support for another UPS that speaks the same 
   protocol.  The "PowerGuard PG-600" should now be recognized.
   Info contributed by Tapio Heiskanen.   

Mon Jan 31 11:43:24 MST 2000 / Russell Kroll <rkroll@exploits.org>

 - upscmd: new client program to send instant commands

Tue Jan 25 21:14:43 MST 2000 / Russell Kroll <rkroll@exploits.org>

 - include/upscommon.h: squashed another lingering part of the old 
   planned UPSCMD_SDD command.

0.43.0-pre1:

Tue Jan 25 20:51:55 MST 2000 / Russell Kroll <rkroll@exploits.org>

 * How to test these new commands:

   There's no client side written yet since it's oh so simple to do with
   telnet.  First telnet to your upsd, do PASSWORD <whatever>, and then
   LISTINSTCMD or LISTINSTCMD <upsname>.  Then do INSTCMD <upsname>.

   If you want to know what a command does, use INSTCMDDESC <cmdname>.

   You'll need manager access for all this, so get those ACLs cooking...

Tue Jan 25 20:38:57 MST 2000 / Russell Kroll <rkroll@exploits.org>

 - upsd: new network protocol command: INSTCMDDESC

 - include/shared.h: the old CMD_SDD is now dead.  "Instant commands"
   will implement the functionality that had been planned with that ID.

 - upsd/apcsmart/fentonups: more instant command support ...

   CMD_FPTEST in apcsmart
   CMD_BTEST1 in apcsmart and fentonups

 - upsd: new network protocol commands: INSTCMD, LISTINSTCMD

Sun Jan 23 21:13:08 MST 2000 / Russell Kroll <rkroll@exploits.org>

 * Initial "instant command" message structure support added.  New 
   definitions related to this are in include/shared.h.

*** File trimmed here 18 January 2001 ***

For entries before this point, refer to a 0.44.2 or earlier tarball.

*** File trimmed here 25 June 2000 ***

For entries before this point, refer to a 0.43.2 or earlier tarball.
