0.45.5:

Wed Mar 27 12:04:53 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - parseconf: fgetc needs an int, not a char - this was making things like
   upsdrvctl hang on one of my systems with gcc 2.95.4, which also
   generated a warning.

Mon Mar 25 17:30:32 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - models/Makefile.in: hidups needs parseconf.o.  Reported by Arnaud Quette.

0.45.5-pre5:

Wed Mar 20 02:17:29 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - upsd: fixed a subtle ) placement bug in sendupsmsg that was squashing
   the payload in messages to the driver.  This was breaking things like
   SET, since the driver would receive an empty string.

Wed Mar 20 01:13:01 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - upsset: fixed showsettings by dropping the bogus local variable *host
   and fixed the sense of the error check for the ENUM read call

Sat Mar 16 17:50:45 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - upsimage.cgi.8: new man page

Sat Mar 16 17:27:11 CST 2002 / Russell Kroll <rkroll@exploits.org>

 * various: documentation cleanups for release

0.45.5-pre4:

Fri Mar 15 22:32:33 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - genericups: added support for the PowerWare 5119 ("NetUPS")
   as type 15 from information supplied by Michael Keller.

Fri Mar 15 22:25:13 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - upsmon: added a test that makes blank STATUS readings from broken
   drivers generate COMMBAD and eventually NOCOMM events.

Fri Mar 15 17:09:58 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - upsmon: changed the default FINALDELAY to 5 seconds.  The old value of
   15 seconds was making things interesting when HOSTSYNC on the master
   was also set to 15 seconds.

Fri Mar 15 16:51:42 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - upsset: regrouped duplicate upsconnect() calls and other cleanups

Fri Mar 15 16:39:22 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - upsset: check all results of upsreadraw and upssendraw

Fri Mar 15 16:15:23 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - upsmon: the default message for UPS_LOWBATT now says "low battery"
   instead of "critical", since critical has a specific meaning within
   upsmon and it could be confusing.

Fri Mar 15 15:54:16 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - upsmon: changed the way OB + LB status is handled for slaves.  
   Previously the slaves would shut down immediately after sensing that
   value, which could lead to races if it went back online before the 
   master saw it.  Now the slaves wait up to HOSTSYNC seconds for the
   master to set FSD.

   If the master doesn't set FSD for some reason, the timer will elapse
   and the slaves will shut down as before.  This should eliminate the
   race that was reported by Philippe Marzouk.

Fri Mar 15 01:05:36 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - upscommon: added dire warnings for all old style drivers.

   Flip down to March 2001 - it's been a year now, and it's time for
   these things to come out.  After 0.45.x, anything that still hasn't
   been converted is getting thrown out.  See the FAQ for more.

   By the way, dummycons and dummyups aren't going anywhere, so 
   ignore the warnings in them if you happen to use them for testing.

Fri Mar 15 00:29:53 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - upsd: same idea, for the final arg of ACCESS in upsd.conf

Fri Mar 15 00:25:45 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - multimon: don't try to use more args than are available while
   parsing FIELD lines in multimon.conf

Fri Mar 15 00:21:09 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - common: ripped out old_parseconf since nobody uses it now

 - dummycons: moved old_parseconf into here as parseline since this
   was the only program still using it, and the new style parseconf
   can't be used here

Fri Mar 15 00:15:50 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - upsd: don't be case sensitive when checking upsd.users for the old
   format warning

Fri Mar 15 00:12:13 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - upsd: init ups->stale to 1, since it's stale until we read something
   for it.  This fixes a bug where a UPS that has never been read by upsd
   doesn't return the expected "ERR DATA-STALE" to most queries.

   This also changes the syslogs slightly - the "Data for UPS [foo] is now OK" 
   is gone, and the "... successfully" version is now used in all situations.

Fri Mar 15 00:07:00 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - upssched: other minor cleanups

 - upssched: switched to the new parseconf

Thu Mar 14 23:49:35 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - upsset: switched to the new parseconf

0.45.5-pre3:

Thu Mar 14 22:13:58 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - Applied patch from oss-list-ups:

   - upscommon, upsd: drop SysV msg*() interface, switch to FIFOs in
     the state directory instead.  If you're using an OS that doesn't
     enforce permissions on sockets, you *must* lock down the state
     directory.  This is why upsd has been complaining about
     "/var/state/ups is world readable" for awhile.

   - debug_level -> nut_debug_level & is now global
   - upsdebug() added
   - printf() -> upsdebugx()
   - "\n"'s removed from *log()

Sat Mar  9 15:16:31 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - newvictron: new version 0.1.1 from Daniel Prynych adds INFO_BATT_TEMP
   and INFO_BATT_CURRENT support.

Sat Mar  9 14:57:58 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - Applied patch from Nigel Metheringham [nut-0.45.5-pre1-updates.patch]

   - upscommon: add upsflushin to clear input buffers
   - newapc: call upsflushin before sending commands
   - nut.spec: work around old (pre-4.x) version of rpm
   - upspowerdown: one line fix for RH7

Fri Mar  8 13:02:28 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - upsmon: converted to use the new parseconf

Fri Mar  8 06:42:05 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - models/Makefile.in: don't link upscommon.o into upsdrvctl - this
   makes the binary about 14K smaller here.

Fri Mar  8 06:39:47 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - genmb: added dependency for parseconf.o

Fri Mar  8 06:38:42 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - upsconf: converted to new parseconf

Fri Mar  8 06:22:45 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - Makefile.in: add definition for MODELPATH so it gets created in
   the install-dirs target.  Previously this didn't get created, and
   caused problems when installing to a new directory that didn't exist.
   Reported by Kevin Myers.

Fri Mar  8 06:13:00 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - bestups: applied patch from Frank T. Lofaro Jr. to base TRIM/BOOST
   on the outgoing voltage rather than the nominal voltage.  This patch
   also adds INFO_OUTVOLT support.

Tue Mar  5 09:38:36 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - upsd/conf: switched upsd.conf parsing to new parseconf

Tue Mar  5 09:16:38 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - multimon: simplified upstemp/ambtemp by having them call their
   c/f-specific neighbors

Tue Mar  5 09:09:41 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - upsd: fixed a broken response where upsd might say "ERR <ups> UNKNOWN-UPS",
   much to the confusion of the client

Tue Mar  5 08:59:19 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - multimon: moved some code around to clean up main

 - multimon: changed to the new parseconf for both multimon.conf and
   hosts.conf reading

Tue Mar  5 08:24:42 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - upscommon: switched state file locking to fcntl for similar reasons

Tue Mar  5 08:15:29 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - upsd: replaced flock/lockf calls with fcntl for portability and
   cleaner code in general.  This also avoids the problem of needing
   alarm(), since it won't block by default.

0.45.5-pre2:

Mon Mar  4 12:09:59 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - upsd/user: dropped the list searching since directives will now always
   operate on the same user until a new section starts   

Mon Mar  4 12:03:33 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - upsd.users.5: revised for new format

Sat Mar  2 05:44:36 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - upsd/user: rewrote the upsd.users parser to use the new parseconf and
   a new config format much like ups.conf.  This eliminates both the
   username repetition and the bogus "5 per line" problems of the old
   format.

   upsd will refuse to parse an old-style upsd.users file, so convert it.

Sat Mar  2 04:42:12 CST 2002 / Russell Kroll <rkroll@exploits.org>

 * various: changed all calls to old_parseconf until they can be converted

Sat Mar  2 04:39:26 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - common: renamed existing parseconf to old_parseconf for now.
   Eventually the programs using this will be converted to use the new
   version.

 - common/parseconf: replacement for the existing parseconf() that can
   handle lines of nearly any length with just about any number of 
   arguments.  This will be used to resolve the upsd.users situation.

0.45.5-pre1:

Sat Mar  2 00:59:30 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - upsfetch: dump upslogin() - it was too specific (only used in upsmon)
   and needed to call things like upslogx() which broke linking with
   third-party client software.

Sat Mar  2 00:58:52 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - upsmon: do PASSWORD/LOGIN with raw commands instead of calling upslogin()

 - upsmon: move login code into a new function

Fri Mar  1 23:31:16 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - upsmon: check return from upssendraw when setting MASTER mode

 - upscmd: check return values from upssendraw throughout

Fri Mar  1 23:27:24 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - upsct2: check all returns from upsreadraw/upssendraw for sanity

Fri Mar  1 23:07:23 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - hp: new driver from Richard Muratti for HP Powertrust hardware

Mon Feb 25 14:56:41 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - mge-ellipse: new version from Philippe Marzouk.

   - Restart and shutdown delay are now user selectable.
   - Many things are no longer hard coded

Mon Feb 25 14:33:00 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - genericups: converted to the new common core.  This means all of
   the options are different.  In particular, -t is no longer supported,
   as it has been rolled into the usual -x/ups.conf scheme.

   Old way:			genericups -t 2 /dev/ttyS0		

   New way without ups.conf:	genericups -x upstype=2 /dev/ttyS0

   Better way with ups.conf:	genericups -a myups

	[myups]
		driver = genericups
		port = /dev/ttyS0
		upstype = 2

   The -m/-M options to override the manufacturer and model strings
   are available as mfr= and model= either with -x or in ups.conf as
   usual.

Mon Feb 25 13:44:34 CST 2002 / Russell Kroll <rkroll@exploits.org>

 * various: added install-cgi-man targets and added some echoes to the
   Makefiles to see where all these installs are going.

Mon Feb 25 12:46:26 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - configure: added --with-drivers option to allow customization of the
   build process.  There's no point in building and installing 30 drivers
   if you only need one or two.

   This also touches the models and man Makefiles.

0.45.4:

Sat Feb 23 16:16:40 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - Final version number tweak for release

0.45.4-pre5:

Fri Feb 15 06:02:07 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - configure.in: don't do the LIBX stuff unless it's set, either

Fri Feb 15 05:55:21 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - configure.in: don't do the LIBTTF/LIBXPM tests for gd unless they
   are actually defined.

 - configure.in: call AC_DEFINE_UNQUOTED for things that depend on
   the prefix so that config.h has the right versions set.  Reported
   by Phil Davis.

Fri Feb 15 03:36:44 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - upsd: don't crash when given INSTCMD with no arguments.  Reported
   by oss-list-ups.

0.45.4-pre4:

Sun Feb 10 21:10:29 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - upsfetch: recognize ERR CMD-NOT-SUPPORTED

Thu Feb  7 19:47:11 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - common.h: map sete[u|g]id to setres[u|g]id for compatibility
   with HP-UX 10.20.  Reported by Mark Bergman.   

 - configure.in: test for seteuid

Thu Feb  7 19:33:53 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - Applied patch from Nigel Metheringham [nut-0.45.4-pre3-updates.patch]

  - newapc.8 man page (umm some plagerism here :-) )
  - made model driver startup fail when ups.conf cannot
    be read and -a specified (the error you got before was 
    very strange).
  - update of RH spec file including RH6/RH7 support
  - rewrite of upsd init script to use/prefer ups.conf
  - adding of upspowerdown script for RH7

Thu Feb  7 19:15:36 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - Applied patch from Lars Balker Rasmussen to clean up compiles
   on Solaris:

   - add lockf tests/calls on systems that don't have flock
   - drop dead err() check
   - add casts to squash some warnings
   - drop ; after } which is not allowed by Sun's cc
   - drop non-portable // comment
 
Wed Feb  6 13:47:26 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - man/*: change from a u@h to a URL for the list information.  These
   man pages will eventually wind up on the web, then will be harvested
   by evil spammers, and then it's a lost cause.

Wed Feb  6 13:40:59 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - upsstats.cgi.8: new man page

Wed Feb  6 13:30:31 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - upsset.cgi.8: new man page

Wed Feb  6 13:17:16 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - upsd: drop an extra space in the LISTRW response that crept in during
   the sendback variable-formatting change

Wed Feb  6 13:14:14 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - upsd: make sure "VAR-NOT-SUPPORTED" is where it should be

Wed Feb  6 13:03:55 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - cgilib: add room for the last character in unescape().  This was 
   breaking logins in upsset since the last character of everything
   was getting cut off by snprintf.

0.45.4-pre3:

Tue Feb  5 14:55:45 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - genericups: applied patch from David Santinoli which added type 14 to 
   support Online P-series units.

Mon Feb  4 23:03:14 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - upsmon: switched to waitpid which should be more portable than wait3

Mon Feb  4 11:35:47 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - newapc: applied a patch from NetBSD to lop off the trailing : in
   the runtime value.  [patch-af]

Sat Feb  2 12:06:27 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - upsmon: added a wait3() call in the idle loop to make sure we reap
   the exiting children that come from the new "fork to notify" design

 - upsmon: wall is now called with popen() to make things a little cleaner

Sat Feb  2 11:40:16 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - upsdrvctl: added "maxstartdelay" as a global variable to ups.conf.
   This is also available as a per-section variable.  The default value
   is 45 (seconds), but you can change it with this definition if necessary.

Sat Feb  2 11:32:45 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - upsdrvctl: added a timeout to the exec calls so the controller won't
   get stuck if a driver takes too long to start up or shut down.

Sat Feb  2 10:38:29 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - upsdrvctl: pass '-d 0' to drivers in the shutdown routine so we don't
   get stuck in the "waiting for poweroff" phase of main.

Sat Feb  2 08:46:05 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - upscommon: don't print errors using initfn if we're not using it
 
Sat Feb  2 08:45:33 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - dummycons: switched to using select() on stdin, so pthreads are no
   longer needed.  This should be a lot more portable as a result.

Sat Feb  2 08:32:34 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - dummycons: added -m <num> to override default INFO_MAX of 64

 - dummycons: added getopt, help text, and a dummy function for -k

Sat Feb  2 08:16:38 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - main: disabled port locking for all shutdown (-k) calls.  This will
   make it possible to use the new 'upsdrvctl shutdown' without some
   evil hacks.  'nolock' will still be supported in ups.conf in case
   it's needed for other situations.

Sat Feb  2 08:09:02 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - upsdrvctl: added -t switch for testing mode.  In testing mode, upsdrvctl
   prints notifications about actions it would normally do (exec, kill, etc)
   but doesn't actually do them.  This is intended for testing the sdorder
   definitions but should be helpful for other purposes too.

Wed Jan 30 13:21:21 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - upsd: report errors when opening the state file for the first time.
   This disappeared during the rewrite of this section recently.

Wed Jan 30 13:18:26 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - upsdrvctl: start adding support for sdorder and the shutdown command.
   Suggested by Peter Bieringer.

Wed Jan 30 12:38:40 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - upsdrvctl: fixed a crash when encountering a ups.conf that contained
   configuration directives above the first UPS section.

Tue Jan 22 20:16:36 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - upsmon: added a fork in notify() so that slow/broken notifier events
   don't make the DEADTIME checks go off.  This means that multiple instances
   of your NOTIFYCMD may run concurrently.

Mon Jan 21 15:59:49 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - bestups: applied patch from Charles Lepple to fix the inverted bypass
   status bit problem on some models. (nut-0.45.4-bestups-bypass.patch)

0.45.4-pre2:

Wed Jan 16 13:48:27 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - bestferrups801-807: new driver from Jonboy Corbin for Best FerrUPS 
   801-807 models

Wed Jan 16 13:42:03 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - dummycons, dummyups: remove unnecessary genericups.h include

Wed Jan 16 13:40:09 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - fentonups, bestups: moved the handler setup into initinfo() since it
   was being clobbered up in upsdrv_initups().  Reported by Rik Faith.

Wed Jan 16 13:37:40 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - upscommon: added use_init_fn to do the <fn>.init scheme rather than
   tearing up all of the old drivers to call info_ready().  This will
   come back out once all of those old drivers are gone.

Wed Jan 16 13:31:39 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - err.c: removed.  Reported by oss-list-ups.

 - aeg/bestfort: switched from err to fatal/fatalx

Wed Jan 16 13:13:29 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - upsd: switched to using st_size to see if the file changes materially.
   If the size is the same, there's no reason to reopen it.

Tue Jan 15 17:30:22 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - upsd: ripped out the ctime checks.  My systems keep touching the ctime
   when the driver parent exits even when it doesn't have the fd open.
   This has taken enough time as it is, so out it goes...

Tue Jan 15 16:14:16 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - main: expand serialization code so it doesn't exit until the state
   file is actually usable.  The sequence is:

   - fork
   - child: wait for mark 1
				- parent: close state fd
				- parent: set mark 1
   - child: update ups info	- parent: wait for mark 2
   - child: call info_ready()
   - child: set mark 2
				- parent: exit
   - child: do the usual routine

Tue Jan 15 15:35:43 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - main: added serialization code so that the child doesn't call info_ready
   until after the parent exits.  This fixes the problem where the parent
   exits after the rename and updates the ctime as a result.  This annoyed
   upsd and generated false staleness messages.

Tue Jan 15 14:43:09 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - main: use info_ready()

 - upscommon: start the state file as <fn>.init and rename it to
   the usual filename once the driver's init sequence is done.  This keeps
   upsd from connecting to a state file with no usable information.

Tue Jan 15 14:35:25 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - upsd: put back the right error messages in do_sendans()

Tue Jan 15 12:19:01 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - upscommon: the non-SHM getupsmsg() stub now returns 0, not 1,
   since it's not receiving anything

Mon Jan 14 17:59:07 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - upscommon: begin rewrite of create_info().  This one isn't so bad but
   it jumps around too much due to preprocessor directives.

Mon Jan 14 16:49:08 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - upsd: begin rewrite of updateups().  This function was just too big
   and complicated, so it will be split up.

Mon Jan 14 12:43:12 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - upsmon: upslogin returns 1 on success now...

Sun Jan 13 22:27:09 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - applied patch from oss-list-ups:

   - various: add mmap support for state files
   - various: lock/unlock state files to avoid races/corruption
   - various: clean up variables/functions (const, static)
   - cgilib: better sanity checks for unescape()
   - various: create snprintfcat, use it in place of hackish snprintf calls
   - various: clean up includes 
   - upslog: simplify default log format
   - various: don't call syslog directly - use upslog/upslogx instead
   - upsd: add stub for STARTTLS
   - upsd: rework sendback calls to use a format string
   - upsd: warn about mode on statepath if world-accessible
   - upsd: avoid hanging if a client sendq fills up - dump it instead

Sun Jan 13 22:14:58 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - newvictron: don't sleep in upsdrv_shutdown - main does it for us

Sun Jan 13 22:13:55 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - newvictron: new-style driver for IMV/Victron hardware from Daniel Prynych

Sun Jan 13 22:12:09 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - tripplite: new driver for Tripp-Lite SmartUPS models from Rik Faith.

Mon Jan  7 01:51:54 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - upsfetch: don't blast errno by calling close() too early.  Reported by
   oss-listups.

Tue Dec 18 21:51:31 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - upsstats: change the literal degrees character to "&deg;" for
   better HTML compatibility.

0.45.4-pre1:

Tue Dec 18 21:12:20 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - mustekups: applied patch from Anton Ivanov to support the 
   Belkin Regulator Pro Net series.

Tue Dec 18 11:59:10 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - shared.h: zap the duplicate INFO_BATT_VOLT.  Spotted by Jonathan Corbin.

Mon Dec 17 12:11:22 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - upsmon: added NOTIFY_NOPARENT so that upsmon can get some help when
   it loses the ability to shut down the system.  This might happen if
   someone manages to whack the privileged parent with a signal that
   makes it quit.

   It also sends warnings at the "alert" log level since this is a very
   bad situation.  If the UPS went critical, the system would crash since
   it could not shut down.

   To avoid this when shutting down upsmon, either only kill the child
   or just use 'upsmon -c stop'.  The parent will exit gracefully.

 - upsmon: check the pipe to the parent once in awhile to make sure
   nothing bad has happened out there.

 - upsmon: ignore certain signals in the parent.  Previously, hitting it
   with something like SIGHUP in a misdirected attempt to make it reload
   would actually make it exit since it had no handler.

Mon Dec 17 11:49:46 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - INSTALL: updated for the reload-capable upsd, and added some more
   references to other documents in an attempt to reduce some of the
   mails to the lists.

Sun Dec 16 09:01:35 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - upsmon: RUN_AS_USER is now supported in the upsmon.conf to set the
   user id of the non-privileged monitor process.  This is a must if
   you want the reload feature to work properly.

 - upsmon: make sure upsmon.conf is available before dumping the config

Sun Dec 16 08:31:20 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - upsmon: added '-c reload' to send the SIGHUP to the running process.

 - upsmon: added reload on SIGHUP support.

Sun Dec 16 08:29:42 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - upsd: make sure upsd.conf and upsd.users are readable before blowing 
   away the local configuration during a reload.

 - upsd: fixed a segfault when upsd.conf wasn't available during reloads

Sat Dec  8 18:13:16 MET 2001 / Peter Bieringer <pb@bieringer.de>

 * newpowercom
    - add new option "subtype"
    - add support for a 16 byte sending UPS (KP625AP) [need to be tested]

0.45.3:

Tue Nov 27 13:11:15 CST 2001 / Russell Kroll <rkroll@exploits.org>

 * various: update the docs and zap "the the" in the man pages.

Tue Nov 27 12:27:39 CST 2001 / Russell Kroll <rkroll@exploits.org>

 * Trimmed this file again.  Anything older than about a year can
   be found in the older releases.

0.45.3-pre3:

Mon Nov 26 16:10:51 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - mge-ellipse: #include "timehead.h" for struct timeval portability.

Sun Nov 25 22:14:44 CST 2001 / Russell Kroll <rkroll@exploits.org>

 * The INSTALL file now instructs users to try upsdrvctl first.
   Obviously this won't work if they are calling old style drivers.
   Driver authors: now is the time to convert to main.c!

Sun Nov 25 21:39:05 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - mge-ellipse: replaced with new common-core version from
   Philippe Marzouk.

Sun Nov 25 21:11:02 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - upsd: also do staleness checks on LISTRW and LISTINSTCMD

Sun Nov 25 21:09:25 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - upsd: return "ERR DATA-STALE" rather than an empty list for LISTVARS
   when the UPS is stale.

Sun Nov 25 21:07:29 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - protocol: brought the spec up to date with the new ERR entries

Sun Nov 25 20:53:32 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - upsfetch: support these two new errors, and report warnings on their
   older "ANS <var> ..." counterparts.

 - upsd: send ERR VAR-NOT-SUPPORTED when the driver doesn't support a 
   variable in a request

 - upsd: send ERR VAR-UNKNOWN when upsd doesn't recognize a variable
   in a request.  This might happen if you run an old version of upsd
   and a newer client.

Sun Nov 25 20:45:33 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - upsmon: recognize the new upslogin success value

 - upsfetch: upslogin() now returns 1 for success to be consistent with
   the other functions in that file.

Sun Nov 25 20:42:26 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - upsfetch: dump dead upsgetprivs() function

Sun Nov 25 20:39:25 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - upsfetch: switch the legacy ANS <var> DATA-STALE handlers to report
   UPSF_DATASTALE instead of UPSF_NOCOMM1 for now.  It also prints a
   warning about an old version of upsd in use, since upsd now properly
   sends "ERR DATA-STALE" for this condition.

Sun Nov 25 20:34:56 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - upsmon: put a message in the syslog when a TCP connect attempt to
   upsd fails.

Sun Nov 25 20:32:27 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - upsd: clean up new login kicker code

Sun Nov 25 20:26:13 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - main: same idea, but get the paranoia right this time

 - upsd: fixed a bug where defining values in ups.conf before a 
   section header ([upsname]) would make the program segfault.  Right
   now there is no "global" section, so anything above a section is ignored.

Sun Nov 25 19:57:45 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - upsmon: write a LOG_ERR level message to the syslog when a poll fails.
   Up until this point, there was no good way to find out just what
   actually caused a UPS to become unavailable.

Sun Nov 25 19:43:57 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - upsd: disconnect any clients who have issued LOGIN on a UPS that's
   being deleted via the SIGHUP conf reloader.  Previously you could
   make a real mess if you managed to delete and re-add a UPS before
   upsmon noticed, since the login data would be lost.

Sun Nov 25 19:18:27 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - upsmon: make sure the fd to upsd is closed and cleared from local
   storage any time any time a read/write network operation fails. 
   Previously, it was possible to get upsmon into a state where it 
   couldn't poll the server after the ups had gone stale and returned.  
   If you straced the process, you'd see upsmon writing to the dead fd 
   and getting -EPIPE all the time.

Sun Nov 25 18:25:32 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - upsd: rework stale error reporting.  There are a bunch of evil errors
   that are returned as "ANS <var> <error>" rather than a proper ERR.
   These will be fixed, and this is the first one.  "ANS <var> DATA-STALE"
   is no more, and has been replaced with "ERR DATA-STALE".

   upsfetch will still recognize the old format for backwards compatibility
   with older versions of upsd for awhile.

Mon Nov 19 03:16:44 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - upsd.users.5: new man page

Mon Nov 19 02:48:49 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - hosts.conf.5: new man page

Mon Nov 19 02:28:05 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - upsmon.conf.5: new man page

Mon Nov 19 01:39:01 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - upsd.conf.5: new man page

Mon Nov 19 01:09:11 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - upsdrvctl.8: new man page

Mon Nov 19 00:46:15 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - upsdrvctl: send SIGTERM instead of SIGQUIT for the 'stop' signal

Mon Nov 19 00:41:31 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - upsd: clean up the help text and make it reflect the current options

 - upsd: support -c to send commands via signals - 'reload' and 'stop'

0.45.3-pre2:

Sun Nov 18 04:15:05 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - cyberpower: applied patch from Rob Crittenden:

   - Filled in the temperature table
   - Only return a decimal value for temperature, per the UI (in Celcius)
   - Filled in the rest of the input voltage table.

 - cyberpower: new experimental driver for Cyber Power Systems AVR units.
   This protocol is not officially documented, and it's convoluted binary
   stuff, so this driver is a even bigger tangle of guesses than usual.

   The company provided an AVR700 for development.

Mon Nov 12 04:33:38 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - upsmon: move the "not root" warning down into the part of the code
   that would actually attempt the shutdown if root powers aren't
   available.  This was creating some confusing but harmless entries 
   in the syslog due to the new split process design.

Mon Nov 12 04:26:34 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - upsd: change the upsd.conf reload behavior so that not being able
   to open that file after a SIGHUP is no longer fatal.  It just yells
   at you if it fails.

   This can happen if upsd switches to another user (like nobody) after
   starting up, and that user can't read the upsd.conf.

   This is yet another reason why it's best to have at least one user
   for the UPS software, and preferably more if possible.  Run upsd
   as nutsrv, set the upsd.conf (and friends) to be owned by nutsrv,
   and you're in business.

Mon Nov 12 04:20:11 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - upsdrvctl: don't try to start argv[0] when starting one UPS by name.

Fri Nov  9 19:40:47 CST 2001 / Russell Kroll <rkroll@exploits.org>

 - main: applied patch to try forceshutdown before the chdir in 
   case the filesystem with the state path isn't mounted.  Reported 
   by Patrik Rak, via Luca Filipozzi.

Fri Oct 26 02:51:50 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upsdrvctl: status and status <ups> now check the pid files of the
   drivers and return 0 on success.  This should be useful for
   distributors.  Suggested by Peter Bieringer.

 - upsdrvctl: -v will now add some verbose details to some operations.

Fri Oct 26 02:19:21 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upsd: put back the leak avoidance code in the ups.conf handler

Thu Oct 25 12:20:38 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - configure/upsfetch/upsd: --with-udpport is now just --with-port.
   This code has been more than just UDP for long enough.

Thu Oct 25 12:03:44 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - Makefiles: the install target no longer dies if it fails to chown
   the statepath.  This means you can now build and package the tree 
   as a normal user.  The catch is that you still have to make sure 
   the state directory gets the proper permissions when it gets 
   installed for real.

Thu Oct 25 11:56:14 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - Makefiles: the cgi-bin directory is now only created when you do
   "make install-cgi" to avoid more pollution of the prefix.

Thu Oct 25 11:53:44 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - Makefiles: install-misc now creates the misc directory so you don't
   get "misc/" out in your prefix normally.

0.45.3-pre1:

Wed Oct 24 04:28:19 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - Makefile.in: my setver target now throws out the - in the nut.spec
   "%define version" line, so this is actually "0.45.3pre1" if you run RH.

Wed Oct 24 09:29:30 MEST 2001 / Peter Bieringer <pb@bieringer.de>

 - nut.spec.in: fix hardwired man path
 - models: old style 'powercom' ported to 'newpowercom'
    this port obsoletes now/next: 'powercom', 'ups-trust425+625'
 - scripts/RedHat/upsd now recognize new style drivers (tested on RHL 7.1.93)
 - Add some missing manpages to man/Makefile.in

Wed Oct 24 00:20:44 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upsd: close() and shutdown() fds when stopping the server.

Wed Oct 24 00:16:43 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upsd: the "stale at startup" message is now different, since the
   reload code can now trigger it.

Wed Oct 24 00:09:55 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upsd: SIGHUP support.  When upsd receives this signal, it will reread
   ups.conf, upsd.conf, and upsd.users.  This is an atomic operation.
   Any UPS that disappears during the reload will start returning
   "ERR UNKNOWN-UPS" as you would expect.

   User logins aren't stateful, so any changes to upsd.conf will be
   reflected immediately.  If a user can't do a command and then you 
   grant them access, they will gain that ability as soon as it reloads.

0.45.2:

Tue Oct 23 23:12:27 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 * Final documentation tweaks and cleanups for 0.45.2 release

Fri Oct 19 21:14:56 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - nut.spec.in: install the man pages.  Reported by Peter Bieringer.

Sat Oct 13 11:04:58 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upscommon: applied patch from Peter Bieringer to clean up compiles
   with shared memory disabled.

0.45.2-pre3:

Wed Oct 10 13:32:36 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - various: cast to unsigned char when calling isprint/isspace for
   cleaner compiles on Solaris.

Tue Oct  9 14:23:36 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - Applied patch from Lars Balker Rasmussen for cleaner Solaris compiles:

   - setenv: include common.h 
   - drivers: define statefn once in common code for consistency
   - masterguard: fix a dangling default case
   - sec: exorcise some more ^Ms
   - upscommon: cast uids to ints for printf
   - upseyeux: fix an ambiguous else

Tue Oct  9 14:02:12 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - applied patch from Marcio Gomes:
 
   - sms: update the model table

   - docs/cables/sms.txt: document the cabling for these models

Tue Oct  9 14:00:08 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upsd: reworked the ups.conf add routines so that partial entries don't
   cause memory leaks from jumping out of the loop before the free() calls.

Tue Oct  9 13:49:24 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upsc, upsct: be literal about where to look when no variables are
   available - ups.conf and upsd.conf (for now).

Tue Oct  9 13:43:46 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upscommon: threw out an extra ; that was making upssend return -1
   most of the time.  Reported by Lars Balker Rasmussen.

Tue Oct  9 13:42:13 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - apcsmart: fixed extra break that was skipping the ALRMDEL values.
   Reported by Lars Balker Rasmussen.

Sat Sep 29 14:08:41 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upsimage: fixed a bug where the black utility bar was being drawn too
   high to represent the actual voltage.  Reported by Jim Sandoz.

Fri Sep 28 20:03:00 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - man/Makefile.in: actually make the man5 directory when installing.
   Reported by Norman Yarvin.

Thu Sep 20 10:18:49 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - bestups: turn off upsmon's timeout failure complaints.  These things
   are really bad about dropping characters.

0.45.2-pre2:

Thu Sep 20 09:15:30 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upsset: ignore UPSVAR_* values longer than 256 characters to avoid
   memory-related DOS attacks

Thu Sep 20 09:12:03 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upsmon: shutdown() fds on exit to clean things up faster.

Thu Sep 20 09:05:36 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upsdrvctl: start <ups> now works, and just starts that one driver.

Thu Sep 20 08:54:33 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - bestups: switched to common open_serial and upsrecv functions.  This
   means that bestups finally has proper port locking and timeout detection
   on reads.

Thu Sep 20 08:27:19 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - fentonups: log more details about status polls that fail

Thu Sep 20 08:06:32 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - bestups: write to the syslog when the UPS disappears and reappears
   to assist the debugging of communications problems

Sun Sep  9 23:55:58 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - man: new pages: upsd, ups.conf

Sun Sep  9 18:43:02 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - man: new page: upslog

Sun Sep  9 18:18:32 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - man: new page: upscmd

Sun Sep  9 18:00:06 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - man: new pages: upsc, upsct, upsct2

Sun Sep  9 16:52:16 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - configure.in: applied patch from Adam J. Richter to fix a compatibility
   bug with autoconf 2.52.

Sun Sep  9 16:34:51 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - man: new page: belkin

Sun Sep  9 16:27:55 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - man: new page: bestups

Sun Sep  9 16:18:22 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - man: new page: fentonups

Sun Sep  9 16:10:34 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - man: updated apcsmart and nutupsdrv.

0.45.2-pre1:

Fri Aug 31 15:07:41 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upsmon: moved the creation of the POWERDOWNFLAG into the privileged
   code section.  Previously it was possible to setup upsmon where it
   could not create the file since the unprivileged child process was
   doing it.  On affected systems, the shutdown scripts would never
   call -k.

Wed Aug 29 07:38:01 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - COPYING: updated with the current version (still GPLv2) from GNU
   with the Temple Place address and <year> instead of 19yy.  

 * Updated the GPL headers in all source files to reflect their "new"
   address.  It looks like the Mass Ave one was used initially in NUT, 
   and everyone used that same header, so it spread all over the place.

Wed Aug 29 07:18:09 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - configure.in/upscommon: the old "double open" code is gone.  If you
   needed it, you should have said something to me by now.

Wed Aug 29 07:06:11 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - fentonups: added a new compatibility entry for the PowerCom SMK-800A
   from Alexander Starostin.

Wed Aug 29 06:59:28 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upssched.conf: added a dire warning about operating systems that don't
   honor permissions on FIFOs.  If you're running one of these and upssched,
   be sure to run your PIPEFN some place where evildoers can't get to it.   

Wed Aug 29 06:46:47 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - mgeups: use pidfn from upscommon (temporarily, pending conversion to main)

 - multilink: same

Wed Aug 29 06:43:48 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - common: switched from *ptr to ptr[0] in parseconf to avoid some subscript
   type warnings on some systems.

Wed Aug 29 06:42:01 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - masterguard: new driver for Masterguard UPS hardware from Michael Spanier.

Wed Aug 29 06:39:16 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - Applied patch from George Ross for Solaris compatibility:

   - common.h: include <termios.h>
   - models/Makefile.in: use LIBDEP/LIBOBJ properly for upsdrvctl and hidups
   - man/Makefile.in: throw out blank lines in the install target

Wed Aug 29 06:38:18 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - common: return a value from the cfmakeraw compatibility function.

Wed Aug 29 06:35:46 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - common: cast the result of getpid() to int to stop some warnings.

 - upsmon: shutdown exec failures in the parent are now logged differently
   to show which process is actually doing the work.

Mon Aug 13 14:06:54 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upsdrvctl: "stop <ups>" will stop just one ups, while "stop" by itself
   still stops all of them.

Mon Aug 13 12:12:20 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - conf/Makefile: install ups.conf.  Spotted by Wolfgang Rosenauer.

Mon Aug 13 00:39:59 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - newapc: converted the new common core.  This one uses the same
   arguments as apcsmart, so the warnings about -s and -c breaking
   (and changing to -x) further down in this file also apply.

   If you used to do this:          You now have to do this:

   newapc -c 940-0095B /dev/foo     newapc -x cable=940-0095B /dev/foo
   newapc -s 2 -k /dev/f00          newapc -x sdtype=2 -k /dev/f00

   One side effect of changing to the new scheme is that this driver
   now creates state files called newapc, rather than masquerading
   as apcsmart.  If you're still using upsd.conf, be sure to change
   your paths.

   Better yet, now would be a good time to change to ups.conf.

Sun Aug 12 23:42:30 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - hidups: include ctype.h to stifle warnings about isdigit.

Sun Aug 12 13:29:56 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upscommon: reworked the cleanup routine so it actually exists on
   systems without shared memory.  It also now removes the pid files
   so there's no lingering junk when the driver shuts down cleanly.

Sun Aug 12 13:13:52 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upsd: added some signal handlers and shutdown logic to clean up
   things like the new pid file at exit.

Sun Aug 12 13:06:43 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upsd: write a upsd.pid to the ALTPIDPATH.

Sun Aug 12 13:04:38 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - main: write a <driver name>-<portname>.pid to the ALTPIDPATH.

 - configure: --with-altpidpath added.  This controls where upsd and
   the core-based model drivers write their .pid files.  This defaults
   to whatever your STATEPATH is, and probably doesn't need to be changed
   on most systems.  Suggested by Luca Filipozzi for filesystem standard
   compliance.

0.45.1:

Thu Aug  9 11:44:30 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - hidups: handle "BackUPS nnn" properly without breaking "BackUPS Pro"
   parsing.

0.45.1-pre4:

Sun Aug  5 13:16:39 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - hidups: upsdrv_infomax() added.

Sun Aug  5 13:04:54 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upscommon: write a warning to the syslog when msgrcv fails for
   unexpected reasons.

Sun Aug  5 12:59:08 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upsmon: only check NUMLOGINS on master UPSes during slave sync at
   shutdown.  This fixes a potential problem where a mixed master/slave
   upsmon could wait for a situation that would never clear itself.
   This would have been caught by the HOSTSYNC timeout though.

Sun Aug  5 12:55:27 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - hidups: trim back "Back-UPS 500 FW: 6.2.I USB FW:" model strings
   to something a bit cleaner.

Sun Aug  5 12:46:18 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upscommon, main: -x nolock now disables the usual serial port locking
   calls.  This should let FreeBSD users and others use -k on systems
   that can't lock a port with a read-only filesystem.

Sun Aug  5 12:24:34 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upsset: now reports INSTCMD errors properly

Sun Aug  5 12:15:42 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upsset: fixed a string handling bug that was making all of the
   select options come back as empty.

Sun Aug  5 12:05:41 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - models/main: cleaned up the -x / conf arg handling to remove some
   ugly hacks.

Sun Aug  5 10:12:53 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - nut.spec.in: new contributed version to keep up with the current tree.

Sun Aug  5 10:06:22 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - common drivers: added int upsdrv_infomax() rather than hardcoding
   a value that's too big for some and too small for others.

Sun Aug  5 10:01:04 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - powercom: replaced the DTS/RTS handling with sane code grabbed from
   the belkin driver.

Sun Aug  5 09:59:37 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - models/Makefile.in: hidups needs upsconf.o.  Reported by Peter Silva.

Fri Aug  3 10:42:21 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - belkin: beat the shutdown+restore code into submission.  This should
   work now.

Fri Aug  3 08:14:25 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - main: bugfix: -k no longer demands an argument.  This was breaking
   calls to -k in the common-core drivers.

Thu Aug  2 23:09:16 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - belkin: added experimental shutdown+restore code for when -k is called
   with the power present.  This has not been tested yet.

Sun Jul 29 18:47:08 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - belkin: beginning conversion to common code.  Also throwing out strcat 
   and sprintf in favor of the safer strlcat and snprintf, plus code style
   changes.

Sun Jul 29 18:35:46 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - apcsmart: drop more duplicate code in the shutdown function

Sun Jul 29 18:27:27 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - apcsmart: dump the old forceshutdown() dead code.

Sun Jul 29 18:25:52 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - apcsmart: bring back the smart mode detection code that got lost in
   the conversion to the new core structure.

Sat Jul 28 04:19:12 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - multimon: switched to &deg; to provide some sanity in the HTML for
   the degree character.  Patch from Henry Nelson.

Wed Jul 25 02:09:27 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - nutupsdrv: started a man page for the common drivers using the 
   apcsmart file as a base.  apcsmart's page is currently out of date
   until it can be revised to deal with its recent reworking.

0.45.1-pre3:

Sun Jul 22 17:51:43 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - common/Makefile.in: explicitly list upsconf.o for BSD make.

Sun Jul 22 17:40:08 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - everups: new driver from Bartek Szady for Ever UPS models.

 - upscommon: applied patch from Bartek Szady adding the upsrecvchars()
   function.

Sun Jul 22 17:38:18 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upscommon: applied patch from Larry Jones to do the TIOCMSET flag-setting
   call after CLOCAL mode is setup on the tty.

Sun Jul 22 17:37:19 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - generic-ups.txt: applied a patch from Larry Jones to bring this back
   in line with reality.

Sun Jul 22 17:18:24 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upsd: added a warning about the future death of UPS directives in 
   the upsd.conf file.

 - upsd: free the memory from the ups.conf parsing run since there's no
   use for it once we've called addups() from it.

Sat Jul 21 18:25:36 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upsd: make sure the startup logging goes to the syslog even before
   we enter the background.

 - common: exposed xbit_set to the outside for syslog control

 - upsd: added support for defining UPSes via ups.conf.  The UPS directives
   in upsd.conf will still be supported for awhile, but you should start
   converting your configuration files to the new style now.

Sat Jul 21 17:48:11 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upsdrvctl: serialized the starting of drivers so they don't all spew
   all over the screen at the same time.

 - upsdrvctl: split off the start process into a "fork/exec" design

Wed Jul 18 15:03:42 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upscommon: the SysV message handler now logs an error when INSTCMD or
   SET is attempted but the driver does not support it.

Wed Jul 18 14:53:44 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 * Note to distributors and other people converting to the new startup
   format: see docs/driver-control.txt for more information on this.

Wed Jul 18 14:49:33 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - apcsmart: converted to common driver format (main.c).  This means
   a couple of arguments have taken on new identities.  Take note:

   *** If you were using the -c or -s arguments to apcsmart, they will
   *** no longer function!  You must now switch to using the -x method.

   If you used to do this:            You now have to do this:

   apcsmart -c 940-0095B /dev/foo     apcsmart -x cable=940-0095B /dev/foo
   apcsmart -s 2 -k /dev/f00          apcsmart -x sdtype=2 -k /dev/foo

   The big win here is that instead of inscrutable options like '-c' and
   '-s', you have short identifiers that explain what's really going on.

   Of course, if you really want to do this properly, you'll skip the
   command-line junk and just chuck those definitions in your ups.conf.

   	[myups]
   		driver = apcsmart
		port = /dev/foo
		cable = 940-0095B
		sdtype = 2

   You get the idea.

Wed Jul 18 13:44:55 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - main: cleaned up the help text, and reworded the meaning of -a.
   It's best described as "autoconfig" rather than "autostart".

   Note: -a foo will load the values from foo, but you can still override
   them by placing extra values (-x, or a port name) after it on the
   command line.  This allows you to have sensible defaults in ups.conf
   but override it for testing or debugging.

Mon Jul 16 15:30:13 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - conf: ups.conf example file added.

Mon Jul 16 15:21:49 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upsdrvctl: 'start' now works, using the ups.conf.  This is only
   usable if it's starting drivers which support the -a <upsname> 
   argument for autostarting.  Currently that's bestups, fentonups, and
   sec.

Mon Jul 16 15:11:20 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - common: parseconf now properly understands # comments, and will 
   throw out everything on a line after that character.  If you need one
   of those in a config file, use \ to escape it.

Sun Jul 15 17:47:13 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upsdrvctl: new driver control program.  Eventually you will be able to
   do 'upsdrvctl start' and 'upsdrvctl stop' to control the UPS drivers on 
   your system.

Sun Jul 15 16:48:57 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upssched: force the umask to 077 before creating the pipe.

Tue Jul 10 23:28:27 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - common: set umask to 022 before writing a pid file.  Some systems
   are starting up with a umask of 000 (my Slack 7.1 dev box for one)
   which gives you such lovely things as a world-writable 
   /var/run/upsmon.pid.

   You can imagine what sort of fun happens when root uses upsmon -c
   after someone else has edited the upsmon.pid file.

   This probably only bites people running fairly new 2.4 kernels.

   If your distribution doesn't explicitly set a umode in your rc scripts,
   now would be a good time to add one.  These programs should no longer
   be affected by it, but other ones will still be exposed.

Sat Jul  7 06:03:30 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upsset: don't blindly trust results of strchr.

0.45.1-pre2:

Wed Jul  4 00:09:42 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 * Yes, this is 0.45.1-pre2, not 0.45.0-pre2.  Blame my time machine for
   the internal version of the the last prerelease.

Tue Jul  3 23:46:49 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - sec: removed more stray ^M characters.  Hmmmmm.

 - shared-tables.h: Applied patch from John Hughes to add INFO_GRACEDELAY,
   which was missing for some reason.

Tue Jul  3 23:37:39 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upscommon: Applied patch from Larry Jones to set CLOCAL on the tty
   to keep the system from parsing the modem control signals by itself.

Tue Jul  3 23:34:10 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - Applied patches from John Hughes for Unixware 7.1.1 compatability:

   - models/clients: change Makefile.in to split library dependencies into
     LIBDEP, away from LIBOBJ which is now separate.

   - common.h: include sys/termios.h when using the cfmakeraw compatibility
     function.

Sat Jun 30 19:05:07 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - victronups: update from Michael Hettenbach.  The LOWXFER and HIGHXFER
   now have reasonable values.  Support for ACFREQ, BATTVOLT, OUTVOLT, 
   RUNTIME and CURRENT has been added.

Sat Jun 30 19:00:45 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - bestups: add code to detect the SOLA 620.  Patch from Justin Hawkins.

Sat Jun 30 18:32:10 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upsd.h: don't include err.h here.  Reported by George Ross.

Sat Jun 30 18:25:34 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - shared.h: knocked out some stray ^Ms that crept in from somewhere.
   Reported by George Ross.

Tue Jun 26 13:54:39 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - docs/config-files.txt: new document to explain how the config files
   work to people who haven't seen the evolution of the "" and \ handlers.

Tue Jun 26 13:41:25 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upsmon: FINALDELAY is now configable, which means one more hardcoded
   value is now gone from the program.

Tue Jun 26 13:34:34 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upsmon: to override the compiled-in username for the child process,
   use -u <user>.

Tue Jun 26 13:00:53 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upsmon: new security feature: split parent/child design.  By default,
   upsmon will now fork and keep a pipe open between the processes.  One
   will drop all privileges and continue to the normal monitoring loop.
   The other will retain the root powers and watch the pipe for the shutdown
   signal.  It does nothing else.

   You really only need root to kick off a shutdown, and this effectively
   ties upsmon's hands so that it can only do that or exit.  This means it 
   should be very hard to compromise root through upsmon, and if you do 
   manage to break into it somehow, all you can do is shutdown the system.

   It also means that all things executed by upsmon (upssched, or whatever)
   will now run as an unprivileged user.  If you need privileges in your
   NOTIFYCMD or otherwise need to run upsmon the old way, use -p.

   By default this runs as the user/group you configure at compile-time
   with the --with-user and --with-group switches.

Tue Jun 26 12:47:18 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - dummycons: new testing driver.  This one is like dummyups in terms
   of its purpose, but does not require X.  I wrote this after discovering
   that my laptop lacked Xdialog while out in the world without a way
   to fetch it.  You still need pthreads, so it is not built by default.

0.45.1-pre1:

Sun Jun 17 17:05:37 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upscommon: rewrote rtrim - the existing version was not behaving as
   expected with bad results on certain hardware running the fentonups
   driver.

Sun Jun 17 16:38:58 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - sms: new driver for SMS Ltda (Brazilian) units from Marcio Gomes.

Sun Jun 17 16:35:38 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - models/Makefile.in: remove directory creation since it already happens
   in the install-dirs target at the top level.

 - Makefile.in, man/Makefile.in: switch to the included install-sh to
   make directories, since the one found on the system might not
   understand -d

Sun Jun 17 16:32:59 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - aeg: new driver for AEG Protect S. models from Ralf Sieger.

Sun Jun 17 16:32:15 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - nut.spec: new version from Nigel Metheringham.

Sun Jun 17 16:30:43 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - hidups: applied patch from Brad Hards to deal with a string index
   of 0, which should fix MGE support.

Sun Jun 17 16:29:34 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upsset: when changing the value of a variable, upsset will now say
   "was ..." rather than "now ...", which was confusing.  Suggested by
   Bill Richter.

Sun Jun 17 16:20:33 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - conf/upsd.users: the example form for INSTCMDS is INSTCMDS, not ALLOW.
   Reported by Alan Eldridge.

 - models/Makefile.in: genmb is now called with a ./ to force make to
   find it in the current directory.  Reported by Shaul Karl.

 - upscommon: open_serial_simple() now calls open() with O_NONBLOCK which
   should fix things on systems that really don't like it when you leave
   that flag off and DCD drops.  Reported separately by Alan Eldridge and
   Larry Jones.

 - upscommon: open_serial_simple() now uses open_error() for better
   diagnosis when the open call fails.  Suggested by Larry Jones.

Sun Jun 17 16:16:45 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upsset: don't allow the http client to send us UPSVAR_... forever,
   since they could make us eat all the memory with malloc.

Sun Jun 17 16:12:18 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upsset: avoid calling xstrdup without first freeing existing space
   if arguments are repeated to avoid attacks

Mon Jun 11 17:58:50 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upsimage: the utility grapher has been completely reworked.  The image
   will now rescale itself automatically based on the high and low 
   transfer points in your UPS hardware.

Mon Jun 11 17:14:43 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upsimage: cleaned up main - dumped a lot of worthless variables and
   put in some better checks for variables that don't exist.

Mon Jun 11 17:08:38 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upsimage: load values are also checked for sanity.  Previously a
   large enough value would result in a negative position being passed
   to gd, which would then burn all the CPU time.  This only seemed to
   happen with *really* large numbers, like the 30+ million figures
   coming back from the hidups testing.

Mon Jun 11 17:04:10 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upsimage: battery percentage values outside the usual 0..100% range
   will no longer attempt to create impossible images.  They are now 
   clamped to that range.

Mon Jun 11 16:59:36 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - upsimage: started cleanup.  Commenting graphical instructions and more.

Mon Jun 11 16:50:32 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - configure: Added a new switch to define where the hiddev.h file is.
   Use --with-linux-hiddev=/full/path/to/hiddev.h to set it.  By default
   it will look in /usr/src/linux/include/linux/hiddev.h which may be
   sufficient for many systems.

Mon Jun 11 16:21:44 CDT 2001 / Russell Kroll <rkroll@exploits.org>

 - hidups: new driver for USB HID UPS support under Linux.  This should
   theoretically handle any UPS that implements the basic elements of the
   x84 and x85 pages for power devices.  Note that you need to be running
   a fairly recent version of the 2.4 kernel, as the 'hiddev' support is
   brand new.

   As this only runs on Linux systems and only a few of them at that, it 
   needs to be built by hand in the models subdirectory.  (make hidups)

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.

*** File trimmed here 27 November 2001 ***

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

*** 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.
