1.4.2:

Mon Mar 22 16:52:38 CST 2004 / Russell Kroll <rkroll@exploits.org>

 - drivers/Makefile.in: restore 'usb' target (instead of 'usbups')
   (Arnaud Quette) [patch-1.5.15_install-usb]

1.4.2-pre2:

Sat Mar 13 03:50:06 CST 2004 / Russell Kroll <rkroll@exploits.org>

 - newhidups.8: reflect a known issue where the driver may report
   staleness.  Future versions of the driver will address this.
   (Arnaud Quette) [patch-1.5.14_newhidups_manpage]

 - mge-utalk: fix a bug that prevented shutdowns and adjust delays     
   for shutoff / restart to more coherent values (backported from 1.5)
   (Arnaud Quette) [patch-1.5.14_mge-utalk_shutoff]

 - mge-shut.8, FAQ: add extra details for staleness handling
   (Arnaud Quette) [patch-1.4.2_mge-utalk_manpage]

Tue Mar  9 01:21:21 CST 2004 / Russell Kroll <rkroll@exploits.org>

 - newhidups, libhid: mega-merge of this driver subsystem.  This is
   required if you want to monitor a MGE UPS on Linux 2.4.25 or higher.
   Unlike the current hidups driver, this one will be portable.
   (Arnaud Quette, Charles Lepple) [patch-1.4.2_newhidups011]

Tue Mar  9 01:15:45 CST 2004 / Russell Kroll <rkroll@exploits.org>

 - configure, mge-shut, hidparser: backport fix from 1.5 for endianness
   issues for some architectures.  
   (Arnaud Quette) [patch-1.5.1_Endianness]

Mon Mar  8 03:58:23 CST 2004 / Russell Kroll <rkroll@exploits.org>

 - upssched: use the whole argument given to system when complaining
   about errors instead of just the timer name.  Reported by 
   Ulrich Felzmann.

Sat Feb 28 23:40:36 CST 2004 / Russell Kroll <rkroll@exploits.org>

 - dstate: switched to per-socket parseconf context buffers to fix
   a bug where dangling characters from one connection could pollute
   another.  This would only happen with a custom server-level program
   that did something like 'write(sockfd, "blah\nfoo", 8)'.

Sat Feb 28 21:37:12 CST 2004 / Russell Kroll <rkroll@exploits.org>

 - mge-shut: various updates:

   - fixes an OB status redundancy, and set OB as default (will be
     enhanced later on),
   - fixes wrongly typed RW vars (need to be STRINGs), and add length
     for these (auxdata),
     => will close finally Debian Bug #232402 and #234037
   - fixes test.battery.start, and add the matching .stop (not
     available on all models!),
   - add variable ups.test.result (same hid path as the above, but read
     only),
   - adjust ups.delay.* to lower and more coherent values (20 s for
     shutdown, and 30 s for startup)
   - update manpage accordingly,
   - various minor cleanups,
   - changes FLAG_* to ST_FLAG_*,
   - bump driver version to 0.59.
   (Arnaud Quette) [patch-1.4.2_mge-shut_059]

Sat Feb 28 21:16:28 CST 2004 / Russell Kroll <rkroll@exploits.org>

 - driver.list: added Pulsar ESV (mge-utalk) and UM-Link (snmp-ups)
   compatibility, dropped the experimental tag for mge-shut
   (Arnaud Quette) [patch-1.5.13_mge-compatlist]

1.4.2-pre1:

Wed Feb 25 13:19:35 CST 2004 / Russell Kroll <rkroll@exploits.org>

- INSTALL: use chown examples with a colon for BSD compatibility

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

 * various: URLs changed to networkupstools.org domain thoughout

Wed Feb 18 16:20:42 CST 2004 / Russell Kroll <rkroll@exploits.org>

 - man/ferrups.8, man/upsdrvctl.8: resolve doclifter report
   (Eric S. Raymond, Arnaud Quette) [patch-1.4.1_docfilter-manpages]

Thu Jan 15 00:43:02 CST 2004 / Russell Kroll <rkroll@exploits.org>

 - bestups: backported fix from 1.5 to always use S01R0001 as the
   shutdown sequence.  The old technique left the UPS off after the
   utility power returned, which is obviously not what we want.

Thu Jan 15 00:06:55 CST 2004 / Russell Kroll <rkroll@exploits.org>

 - energizerups.8: note that a kernel patch isn't always necessary.
   (Viktor T. Toth)

Fri Jan  9 13:14:22 CST 2004 / Russell Kroll <rkroll@exploits.org>

 - safenet: upgraded to version 0.3, adding shutdown.return,
   'manufacturer', 'modelname' and 'serialnumber', and more.
   (Arjen de Korte) [safenet-1.4.1.diff]

1.4.1:

Sat Dec  6 03:16:00 CST 2003 / Russell Kroll <rkroll@exploits.org>

 * Version number bumped for release

Tue Dec  2 15:40:26 CST 2003 / Russell Kroll <rkroll@exploits.org>

 - victronups: added code to ignore spurious \n characters in responses
   which sometimes caused bad readings in certain variables.
   (Gert Lynge) [nut141pre4_victron_0131_to_0132_patch]

1.4.1-pre4:

Thu Nov 27 18:01:05 CST 2003 / Russell Kroll <rkroll@exploits.org>

 - hidups: also added a bad hack to just keep on going when that symbol
   isn't available at compile time so the driver can work again on 
   systems which have 2.4.21 headers and a 2.4.22 kernel.

 - hidups: changed initial detection to try HIDIOCGCOLLECTIONINFO
   (Arnaud Quette)

Thu Nov 27 17:38:15 CST 2003 / Russell Kroll <rkroll@exploits.org>

 - mge-shut: retry status updates to avoid a problem where the status 
   could be blank when the UPS went on battery.  (Arnaud Quette)
   [patch-1.4.1-pre3_shut-FreeBSD]

 - clients/Makefile.in: install parseconf.h in the install-misc target
   (Arnaud Quette) [patch-1.4.1-pre3_install-lib]

 - man/Makefile.in: don't install some man pages twice (Arnaud Quette)
   [patch-1.4.1-pre3_installman]

1.4.1-pre3:

Fri Nov  7 22:43:12 CST 2003 / Russell Kroll <rkroll@exploits.org>

 - configure: rebuilt with autoconf 2.57

 - client/Makefile.in: build libupsclient.a and install it in the
   install-misc target for easier client compatibility with 1.5

 - configure.in: check for ranlib and ar

 - configure.in: explicitly test for EGREP so things don't break on
   FreeBSD systems.

Fri Nov  7 21:44:41 CST 2003 / Russell Kroll <rkroll@exploits.org>

 - ferrups: this is an upgraded version of the old bestferrups801-807
   driver which has been converted to the new variable naming scheme.
   (Robert Woodcock) 
   [patch-1.4.1-pre2_ferrups]

Fri Nov  7 21:17:44 CST 2003 / Russell Kroll <rkroll@exploits.org>

 - mge-shut: fix comm lost/restored oscillation due to long update
   periods for some MGE models.  (Arnaud Quette)
   [patch-1.4.1-pre2_shut-comlost]

 - drivers/Makefile.in: fix 'make DESTDIR=/tmp/foo install-hidups'
   when /tmp/foo doesn't already exist.  (Arnaud Quette) 
   [nut-1.4.1-pre2_install-hidups]

 - victronups: fix OB/OL reporting bug (Gert Lynge)
   [nut-1.4.1_patch]

 - genericups: added type 20 for the Powerware 5119 RM.  (Daniel Thompson)
   [http://lists.exploits.org/ups/Oct2003/00052.html]

Fri Nov  7 21:06:59 CST 2003 / Russell Kroll <rkroll@exploits.org>

 - safenet: new driver for UPS hardware which uses the protocol of the
   same name.  This should support units from many manufacturers, including
   Fairstone, Fenton, Gemini, Powerwell, Repotec, Soltec and Sweex.
   See the driver.list or README file for the full details.
   (Arjen de Korte)

1.4.1-pre2:

Fri Oct 17 16:02:53 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsd: fixed a double free in the desc code.  This only happened
   during shutdowns and config reloads.

Fri Oct 17 16:00:13 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - Makefiles: add 'hidups' and 'install-hidups' targets at the top level
   for specialized builds.  (Arnaud Quette) [patch-1.4.1-pre1_make-hidups]

Mon Oct 13 15:54:41 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - fentonups: added a new entry to the mtab2 to recognize the 
   Effekta MT 2000 RM models.  Users with other Effekta MT and MH models
   should be able to use this as a guideline.  (christoph moar)

Mon Oct 13 15:51:56 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - drivers: backported the pollinterval feature from 1.5 to make things
   work better for certain drivers.  (Arnaud Quette)
   [patch-1.4.1-pre1_pollinterval.gz]

Fri Sep  5 21:35:40 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - hidups: test for "Smart-UPS" and clean up the mfr/model data if found.
   Based on the original patch by George Ross.

 - mge-shut: add input.{voltage,frequency} and output.{frequency,current}
   (Arnaud Quette)

 - energizerups: new driver for Energizer UPS hardware.  (Viktor T. Toth)

 - Makefile: add new targets for building and installing the snmp-ups
   driver and man page separately. (Arnaud Quette) [patch-1.5.2_make-snmp]

Sun Aug 24 04:49:17 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - Makefile.in: update the right file for the below fix this time

1.4.1-pre1:

Fri Aug 22 22:59:02 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - Makefile: don't keep calling lower-level Makefiles when one fails.
   (Petter Reinholdtsen, Charles Lepple)

Fri Aug 22 22:20:26 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - blazer: fix startup messages by using printf (Arnaud Quette)

 - Makefile: add new targets for building and installing the snmp-ups
   driver and man page separately. (Arnaud Quette)

Fri Aug 22 22:16:40 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - snmp-ups: don't try to read an external mib file yet. (Arnaud Quette)

 - blazer: new driver for Centralion Blazer hardware from Phil Hutton,
   via Arnaud Quette.

Fri Aug 22 22:15:46 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - driver.list: applied patch from Arnaud Quette updating MGE status

Fri Aug 22 22:01:54 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - bestuferrups, masterguard, sec: remove ^Ms

 - upsd/user: fixed a couple of memory leaks in user_flush

 - upsd, upssched, dstate: use socklen_t instead of int

Fri Aug 22 21:58:07 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - configure: test for socklen_t and #define it when it doesn't exist.
   Based on a patch from Petter Reinholdtsen.

Fri Aug 22 21:52:14 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsd: don't return (func) in a function that returns void.
   Reported by Gabriel Faber.

Fri Aug 22 21:51:08 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsstats: clean up the hosts.conf error page.  Reported by Bill Richter.

Fri Aug 22 21:49:32 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - newapc: actually read the response from the UPS after starting 
   runtime calibration so we don't get out of sync.  This fixes a bug
   where the status could go blank for a few seconds.

Fri Aug 22 21:47:29 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - mge-shut: change ulong to unsigned long for better portability

 - configure, clients: look for getpassphrase and use it when it exists,
   since getpass on those systems only provides up to 8 characters.
   Reported by Gabriel Faber.

1.4.0:

Fri Jul 25 09:59:51 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 * Final documentation cleanups for release.

Tue Jul 22 06:45:13 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - tripplitesu: new driver from Allan Hessenflow for Tripp Lite SU
   (SmartOnline) equipment.

1.3.13:

Thu Jul 17 23:01:43 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsd: complain about bad ACCESS level names in the syslog

Mon Jul 14 17:23:41 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - snmp-ups: set VAR_SENSITIVE on the SNMP community

 - main: add VAR_SENSITIVE to mark variables that should not be published
   in the driver.parameter tree

Mon Jul 14 15:42:13 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - snmp-ups: don't call dataok when the target host is down

 - snmp-ups: fixed a NULL pointer dereference when the far end was
   unreachable

Thu Jul 10 19:54:14 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - mge-shut: applied patch from Arnaud Quette fixing another data
   refresh problem that resulted in updates that only touched the status.
   [patch-1.3.12_mge-shut]

Thu Jul 10 19:48:06 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - genericups: added support for overriding the different parts of a
   UPS type (CP, OL, LB, SD) for custom monitoring based on a patch
   from Maarten Brock.   

1.3.12:

Wed Jul  9 12:48:43 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - victronups: applied patch from Daniel Prynych which finishes the
   conversion to 1.3 and adds dataok/datastale calls.

Sat Jul  5 07:20:26 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - snmp-ups: use xmalloc, not malloc

Sat Jul  5 07:05:23 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsd: clean up ERR handling for setting an invalid ENUM value and 
   elsewhere
 
Fri Jul  4 05:14:55 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - dstate: the fd poller no longer complains about select failing
   due to being interrupted, like what happens when you shut down a 
   driver.

Fri Jul  4 05:12:37 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - snmp-ups: changed the OIDs used for low and high transfer data
   in the APCC MIB definition to something that makes sense even on
   three-phase units like the Symmetra.  Previously, it would display
   a range around 208V despite running the outlets around 120V.

Fri Jul  4 05:01:12 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - snmp-ups: applied patch from Arnaud Quette fixing status polls on
   APC equipment and others. [patch-1.3.11_snmp-ups_statusfix]

Fri Jul  4 04:58:47 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - snmp-ups: add support for the APC IEC monitoring OIDs, including
   the units in case someone decides to set it to Fahrenheit, since
   we need it in Celsius.

 - snmp-ups: compare OIDs that are returned by getnext so we don't
   pick up things that have no relationship to what we requested.
   This fixes the bugs where the driver would think a certain OID
   existed because it was landing on another one in the tree.

Tue Jul  1 20:50:35 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - bcmxcp: blindly converted most of the calls to dstate equivalents.
   This driver still lacks the sanity checks, so it doesn't actually run.

1.3.11:

Tue Jul  1 03:54:39 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - mge-shut: fixed a case with no return code

Mon Jun 30 04:20:19 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - newapc: after changing a variable in the UPS, refresh the dstate
   data so clients see the new value immediately.

Mon Jun 30 04:08:03 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upscommon, dstate: move ups_handler into its own header file to avoid
   problems later

Mon Jun 30 03:45:05 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - snmp-ups: applied patch from Arnaud Quette, which includes work
   from J.W. Hoogervorst:

   - more data and commands are supported from the MGE and IETF mibs
   - code cleanups throughout, plus tidying of memory at shutdown
   - this driver works on 1.3 now - dstate_dataok is called
   - staleness is reported properly
   - external MIB file support started
   - 'pollfreq' setting now available to help control network load
   - ups.status now fully interpreted for IETF and MGE mibs

Mon Jun 30 03:40:09 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - main: bad flags or variables no longer dump the full help (-h) screen
   since it was scrolling the actual error off a normal size screen.
   Users are now prompted to check the -h screen on their own.

 - main: also added driver.flag.* for consistency

 - main: add driver.parameter.* as proposed by Arnaud Quette.

Mon Jun 30 03:11:15 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - configure.in: use AC_C_INLINE to deal with systems with different
   ways of handling this word.  This was breaking builds of the 
   bestfortress driver.  Reported by Petter Reinholdtsen.

Mon Jun 30 03:03:53 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - mge-shut: applied patch from Arnaud Quette adding support for the
   PowerShare mode as documented in powersavings.txt.  This also adds
   output voltage data, UPS serial number reading, shutdown.stayoff, 
   load.on, and load.off.  A bug in the data refresh was fixed, and
   this driver is no longer tagged experimental.

 - powersavings.txt: applied patch from Arnaud Quette adding this
   and the outlet.* scheme to the variable tree. [patch-1.3.10_PowerSave]

Mon Jun 30 02:57:54 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - hp: applied patch from Jan Sporbeck adding support for the A2994A.

Wed Jun 25 23:34:41 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsd: don't complain about unhandled command/variable names in the
   syslog now.  This was causing too much noise now that we have things
   with no mapping to an old name - driver.* and more.

Tue Jun 24 15:17:14 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - MAINTAINERS: added this file to help route patches to the right people.
   I can't possibly verify all changes to things like the drivers, since
   it's impossible to own every UPS that exists.

   Driver authors: please send me patches for this file to add entries
   for the things you maintain.

1.3.10:

Wed Jun 11 06:40:20 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - configure: actually put the --with-gd values into the environment
   before trying to detect gd.h and libgd.  This kept gd detection from
   working unless it was in the standard system paths.  Reported by
   Patrik Schindler.

Wed Jun 11 06:32:03 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - tripplite: converted, bumped to 0.02, added driver.version.internal

Wed Jun 11 06:05:51 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - etapro: converted instcmd, bumped to 0.4, added driver.version.internal

 - oneac: converted instcmd parsing to new format, bumped to 0.4,
   added driver.version.internal

 - hp, oneac: set broken_driver

Wed Jun 11 05:54:36 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - genericups: call dataok more than once

Wed Jun 11 05:49:46 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - cyberpower: use bufsize properly in get_ident, and don't read beyond it

Wed Jun 11 05:47:04 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - bestuferrups: converted, bumped to 0.01, added driver.version.internal

 - bestuferrups: noticed a sanity check, so this one now calls dataok/stale

Wed Jun 11 05:40:14 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - bestfortress: added dataok/datastale after locating status checksum
   tests in the update function and converted some calls

 - bcmxcp, bestferrups801-807: set broken_driver for lack of sanity
   checks in upsdrv_updateinfo

Wed Jun 11 04:58:28 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - main: added broken_driver flag to make them easy to find later.
   If this flag is set, main will print a message and exit shortly 
   after starting.  This is your cue to jump in and fix things.

Wed Jun 11 04:52:54 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - microdowell: converted, bumped to 0.02, added driver.version.internal

   *** Note: this driver still won't work, since nobody's figured out
       the sanity checks to add a dstate_dataok() yet...

Wed Jun 11 04:43:16 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - isbmex: converted, bumped to 0.02, added driver.version.internal

Wed Jun 11 04:38:57 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - var-map, drivers: input.minimum and input.maximum are now 
   input.voltage.minimum and input.voltage.maximum to avoid ambiguity

Wed Jun 11 04:33:09 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - victronups: converted, bumped to 0.1.2, added driver.version.internal

   *** Note: this driver still won't work, since nobody's figured out
       the sanity checks to add a dstate_dataok() yet...

Wed Jun 11 04:26:15 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - masterguard: converted, bumped to 0.22, added driver.version.internal

Wed Jun 11 04:16:55 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - sms: bumped to 0.71, added driver.version.internal

 - sms: converted calls and variable/command names to dstate versions

 - cmd-map-init: mapped WATCHDOG to reset.watchdog for the sms driver

Wed Jun 11 03:59:11 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - drivers, upscommon: added upsdrv_cleanup() which will be called
   after certain signals (SIGTERM, SIGINT, SIGQUIT) have been received.
   Any drivers which allocate dynamic resources should free them in
   this function so things like valgrind will show no leaks.
   Suggested by Arnaud Quette.

Wed Jun 11 03:49:11 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - esupssmart: new driver for Energy Sistem equipment from
   Antonio Trujillo Coronado.

Wed Jun 11 03:48:16 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - status.h: applied patch from Arnaud Quette adding a mapping for BYPASS

Wed Jun 11 03:45:37 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - hidparser: applied patch from Arnaud Quette fixing a compilation 
   warning discovered by Shaul Karl.  [patch-1.x-HIDParser_warnings]

Mon Jun  9 00:31:04 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsd: report the username that did LOGOUT, if available

Sun Jun  8 23:24:44 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - genericups.8: update type 7 to reflect Belkin Home Office
   compatibility as reported by Matthew Mueller.

Sun Jun  8 23:10:21 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsmon: reworked large parts of the code to fix several things and
   make it easier to follow:

   - All authentication (username, password, login, master) happens in
     one place, and can happen exactly once per connection now.  upsd
     doesn't let you retry a username or password anyway, so the old
     technique of allowing it at any time was useless.

   - upsmon now drops the connection to upsd in a handful of situations.
     It used to do it for any condition beyond 'data stale', including
     temporary problems like restarting the driver.

     upsd will boot off clients that are logged into a UPS that is 
     removed (via reconfiguration and SIGHUP), so there is no concern 
     about losing the number of clients from the LOGIN calls.

   - upsmon now requires a UPS name in the MONITOR directives as part
     of the upgrade to the new protocol.  It can still monitor old hosts,
     but you will need to specify a UPS name for them.  

     Old way:

     MONITOR bigserver 1 monuser password master

     New way:

     MONITOR myups@bigserver 1 monuser password master

     Just look at the top of ups.conf on 'bigserver' to figure out what
     the first UPS is called, and stick it and a @ on that MONITOR line.

   - Notifications of things like COMMOK and ONLINE have been reworked
     to ensure that they only fire upon a state change from COMMBAD and
     ONBATT, respectively.  This was already the case, but the 
     implemention made it unclear.

     The new code also makes it possible to allow COMMOK and ONLINE to
     be generated when the program starts if someone asks for this later.
     Just initialize it to something other than 0, -1, or 1.

   - A few functions were renamed to better explain their roles.

   - pollups() was split up to put the actual parsing somewhere else,
     since the level of indention was getting out of hand.

Sat Jun  7 02:56:02 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upslog: reworked the parser to generate a list of function calls
   once, then just use that list for the actual status printing.  The
   old design made it reparse the format string every time around,
   which was pointless since it can't be changed while the program is 
   running.  This way should save a bit of CPU.

1.3.9:

Fri Jun  6 00:17:24 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - mge-utalk: applied patch from Arnaud Quette [patch-1.3.8-mge-utalk_dev]:

   - adds "driver.version.internal" (0.80) and Bypass status reading 
   - adds commands "shutdown.return" and "bypass.stop"
   - various cleanups and cosmetics.

Thu Jun  5 02:38:30 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - applied various patches from Arnaud Quette:

   - driver.list: rework genericups upstype notation for better parsing
     [patch-1.3.8-genericups_UPStype]

   - hidparser: fix compiles on FreeBSD. [patch-1.3.8-HIDParser_BSD]

   - various: change BYP to BYPASS.  This was never officially defined 
     either way up to this point. [patch-1.3.8-BYPASS_status]

Wed Jun  4 00:22:34 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - contact-closure.txt: created from the remains of the old
   generic-ups.txt in order to clear out the old docs/drivers directory

 - mge-utalk.8: applied patch from Arnaud Quette updating this and
   removing the old docs/drivers/mge-utalk.txt.

Wed Jun  4 00:19:45 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - applied various patches from Shaul Karl:

   - man: update the powercom and  genericups pages to reflect 
     earlier improvements

   - upssched.conf: keep comments commented

Wed Jun  4 00:15:24 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - snmp-ups: applied patch from Dmitry Frolov adding support for 
   the new shutdown.reboot and shutdown.reboot.graceful commands
   in APCC MIB mode.

1.3.8:

Mon May 19 01:47:28 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - various: applied patch from Bryan Henderson:

   - setting NUT_CONFPATH in the environment now overrides the one
     compiled into the binaries.

   - NUT_STATEPATH now works in more places for similar reasons

   - upsdrvctl now uses execve to pass the environment to the drivers
     so these new variables will be effective.

   - ups.conf supports driverpath= to allow changing that, too.

   - upsd.conf supports DATAPATH for yet another override

   - ALTPIDPATH now picks up the runtime value of the state path unless
     it was set at compile-time.  This has no effect at the moment since
     the ALTPIDPATH is always defined by the configure process.

   - upsd now reports which TCP port number is being tried when bind() 
     fails to complete.

Mon May 19 01:35:44 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - snmp-ups: applied patch from Dmitry Frolov adding support for
   the ambient.temperature and ambient.humidity variables when using
   the APCC MIB. [nut-1.3.7-snmp-apc-ambient.diff]

Mon May 19 01:30:43 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsset: condensed the error page generation and username/password
   handling to clean up the code a bit

 - upsset: converted to the new upsclient functions and variable names.
   Older versions of upsd are still supported, and will be detected
   automatically.

Sat May 17 00:12:23 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upssched: converted to SOCK_STREAM with plain text control instead 
   of shooting binary structs around.  This was done partly for 
   consistency but mostly because upssched had a race when the parent
   shut down.

   If the parent started to quit while a client woke up and sent in 
   a new datagram, the client would think it had been received but
   in reality it would be dropped.  There is no easy way to respond to
   datagrams over a Unix domain socket, so there was no practical way
   to have the parent confirm a command.

   upssched now confirms all commands with "OK\n".  The client will
   not exit until it either starts the parent itself or connects
   to the parent, sends the command, and gets that response back.  It
   will still give up after 30 failed attempts in case things are
   seriously broken.

Wed May 14 15:30:21 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsd: fix FSD reporting in STATUS (old) and ups.status (new)

Wed May 14 15:19:36 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsmon: added support for the new variable names while maintaining
   support for older versions of upsd.  upsmon will write a message
   in the syslog about "using compatibility mode" when this happens.

Wed May 14 14:58:19 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsmon: added -D for consistency and took -d out of the help text.
   -d will be supported but unadvertised for awhile.

Wed May 14 14:24:45 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - newapc: try to break out of menus on newer models by sending ESC

 - bestups: cleaned up init and shutdown sequences

Wed May 14 13:56:51 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - main, dummycons: set driver.version and driver.name

Wed May 14 13:54:06 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - fentonups: make multiple attempts to detect a UPS before giving up,
   and perform more sanity checks on the ID sequence

Wed May 14 13:46:26 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - mge-shut: applied patch from Arnaud Quette fixing a memory leak.

1.3.7:

Tue May 13 12:55:08 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - genericups: applied patch from Shaul Karl adding support for
   setting ups.serial via 'serial=' in ups.conf.

Tue May 13 12:31:54 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - fentonups: added new code and a table for devices which implement
   the "I" detection differently.  Thanks to Joon Guillen for providing
   info on the Giant/WELI 500 hardware.

Mon May 12 14:30:32 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsd: started adding explicit #defines for error reporting consistency

Sat May 10 13:39:29 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsc, upscmd, upslog, upsrw: added support for these new upsclient
   functions and therefore the new variable names by extension.

   These programs will still work against older versions of upsd, as
   long as you use the right (older) variable and command names.

   You must also now specify a upsname if you are using a new variable
   name or command name.  The old concept of a "default UPS" is still
   supported, but only for the backwards compatibility, which means
   only old names will work.

   For example, instead of localhost, use su700@localhost.

 - upsclient: added new functions for using the new GET and LIST
   protocol commands: upscli_get, upscli_list_start, upscli_list_next

Sat May 10 13:16:38 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - mge-ellipse: removed

 - mge-shut: applied patch from Arnaud Quette and Philippe Marzouk
   completing the transition from mge-ellipse. 
   [patch-1.3.5-mge-ellipse2shut-FINAL]

Fri May  9 14:34:12 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - various: remove references to bare hostname as UPS identifiers.
   The new protocol requires a UPS name from ups.conf, so this will
   start teaching people to use a ups name all the time.

   Essentially, foo@localhost is now the preferred form.  Just 
   "localhost" will not work with anything that uses the new 
   variable names.

Fri May  9 11:52:43 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - data: created a new directory for things that go in the datadir.
   Right now this is just the 'cmdvartab' for upsd's descriptions.

Fri May  9 11:30:00 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - various: make sure pconf_finish is called if the file open fails
   to avoid leaks from the wordbuf and other dynamically allocated things

 - upsd: added support for providing command and variable descriptions
   from a file.  This file is optional.  upsd will send "Unavailable"
   if the file is not available, or if it doesn't have an entry for
   a given name.

1.3.6:

Fri May  9 05:45:09 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - powercom: applied patches from Shaul Karl to modify the validation
   code and convert to dstate.

Thu May  8 08:26:39 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsd: added support for server.info and server.version.  Since these
   variables don't apply to any UPS, the usual <upsname> field is ignored.

Thu May  8 04:04:03 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsd: make sure only the old compatibility functions can use the
   old variable names

Wed May  7 04:44:06 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsclient, various: added 3 more functions to access various elements
   from struct UPSCONN without actually touching it directly.  Clients
   must treat UPSCONN as opaque, since it could change.

Tue May  6 13:19:04 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - oneac: mostly switched to dstate - not all names have been mapped

Tue May  6 13:08:34 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - everups: switched to dstate

Tue May  6 12:58:07 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - hp: mostly switched to dstate - there are no sanity checks on the 
   incoming data, so it will be stale until it is fixed

Tue May  6 12:48:03 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - everups, mge-utalk, tripplite, snmp-ups, powernet: drop VALSIZE,
   since it's a relic from the old info array.

Tue May  6 12:30:37 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upslog: use become_user() directly

Tue May  6 12:14:44 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - configure.in/Makefile.in: dropped --with-group and the state path
   creation code.  We'll let the user create this now.

   The INSTALL file has also been beefed up to explicitly mention steps
   like this, and other important things like creating a separate user.
   The old nobody fallback will still work, but we'll try to steer them
   away from that for their own good.

Tue May  6 11:45:53 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsmon: switch to using become_user() for consistency with the other
   programs.  This technique picks up the group data for setgid() from
   the user's primary/default group, so --with-group no longer has
   any effect.

Tue May  6 11:41:23 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - dstate, sstate: clarify test for EAGAIN: only when read returns -1

Tue May  6 11:38:44 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - dummycons: added -u <user> for consistency with other drivers.
   This means you can start it as root without having to su to your 
   dev user first.

 - dummycons: added code to drop privileges after startup

Mon May  5 03:12:24 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsclient: drop xstrdup and switch to local checking to avoid
   extra dependencies on other object files

Mon May  5 03:07:30 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - apcsmart: eat the response from the calibration command

Fri May  2 23:59:41 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - newapc: read the results of the start/stop calibration commands to
   avoid getting out of sync later on.  Reported by Nicholas Lee.

Fri May  2 23:46:35 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - mge-shut: applied patch from Arnaud Quette and Philippe Marzouk
   to convert to dstate, add a "notification" option for supporting
   ellipse models and enhance communication handling. 
   [patch-1.3.5-mge-shut_CNNS]

Fri May  2 00:55:51 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - liebert: converted to dstate functions

1.3.5:

Fri May  2 00:01:17 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - cyberpower: new instant command: shutdown.stayoff

Thu May  1 23:53:13 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - apcsmart: did a few final cleanups and added a "deprecated" warning.
   It will eventually be replaced by the newapc driver, which will be
   renamed to apcsmart.

Thu May  1 23:33:48 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - drivers: added datastale/dataok calls to many, but not all.  Too
   many drivers assume upsrecv() will succeed, and that's horribly
   wrong.  If your driver didn't check that call or do basic sanity
   checks on the received data, I didn't convert it.

   A few other complicated drivers were also left unconverted, so
   their authors can figure out how to best handle the situation.

   Rule of thumb: if you can't update ups.status, it's stale.

   Unmaintained drivers may be removed by the end of the 1.3 series.

Thu May  1 22:57:17 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsd: reworked startup sequence to report staleness in the right place

 - various: added explicit DATAOK/DATASTALE support to replace the
   meta-data that we used to get via writeinfo()

Thu May  1 21:47:47 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - cyberpower: reworked the initial detection process to add a few 
   more tries before giving up completely

Thu May  1 21:36:16 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - cyberpower: added support for test.battery.start

 - cyberpower: fixed the signal handlers for SIGALRM so read() doesn't
   restart when it fires.  This occasionally made the driver hang at
   startup.

Thu May  1 21:23:29 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - newapc: explicitly check every upsrecv for usable results, and deal
   with "NA" everywhere

Thu May  1 21:12:19 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - parseconf: explicitly leave room for the trailing null in all cases

Thu May  1 03:38:21 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - snmp-ups: applied patch from Arnaud Quette to support BYP status

Thu May  1 03:29:57 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - newapc: converted to dstate functions

Wed Apr 30 15:42:12 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - mge-utalk: applied patch from Arnaud Quette to convert to dstate.
   [patch-1.3.4-mge-utalk_CNNS]

Wed Apr 30 04:12:58 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - newapc: started tearing into it with a chainsaw

Wed Apr 30 01:47:53 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - newapc: split status handling into its own function

Tue Apr 29 21:55:22 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - drivers/main: drop main_background, revert to common function

Tue Apr 29 19:54:31 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - bestups: split up the updates in order to have a long delay
   between the Q1 request and the status read without using sleep()

Tue Apr 29 16:12:13 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - snmp-ups: applied patch from Arnaud Quette to switch over to the
   new dstate functions.  [patch-1.3.4_snmp-ups_CNNS]

Tue Apr 29 15:47:58 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsd: also make sure the clock is checked even when no drivers respond

 - upsd: fix the arguments for difftime() so we don't run forever

1.3.4:

Tue Apr 29 00:16:54 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - bestuferrups: applied patch from Bob Apodaca adding support for the
   1.1kVA UPS.  It also cleans up the detection process to make it
   easier to add new models in the future.

Tue Apr 29 00:11:50 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - powercom: applied patch from Preston A. Elder adding support for
   KIN-2200AP hardware.  This may also support other KIN-xxxxAP equipment.

Tue Apr 29 00:01:21 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - mge-utalk: applied patch from Arnaud Quette:

   This patch solves a syncing and communication problem due to RTS pin
   which wasn't cleared. Tested with Evolution, EX10, ES5+, ESV11+.

Mon Apr 28 23:57:02 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - hidups: applied patch from Arnaud Quette [patch-1.3.3-alt_hidups]:

   - added the base for set() function
   - added upsdrv_shutdown() with parameters
   - added code to handle MGE and others.

Mon Apr 28 23:49:25 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsd: do the usual stale/connected checks in the new net functions

Mon Apr 28 23:37:41 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsd: shuffled the compatibility functions into oldnet.c so they
   stay out of the way.  It also makes the size of the cruft easy to see.

Mon Apr 28 23:24:12 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsd: added new handler for INSTCMD.  This also falls through to the
   old version with the old names for compatibility.

Mon Apr 28 23:13:42 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsd: added new handler for SET VAR.  This will fall through and 
   try the old version if necessary.

Mon Apr 28 22:46:00 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - dstate: added verbose error handling for the case where the socket
   can't be created in an attempt to avoid support mails down the road

Mon Apr 28 18:06:44 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsd: clarify new protocol: BEGIN, not START

 - upsd: extend the END LIST to include the list parameters

Mon Apr 28 17:13:31 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsd: fix the formatting of "GET TYPE", and explicitly add RW

Mon Apr 28 16:54:42 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - belkin: don't allow OFF to co-exist with OB or OL.

Mon Apr 28 16:45:30 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - dstate: bugfix: send STRING when doing the initial SETFLAGS notification

 - dummycons: support multiple args for sf/setflag, so "sf blah RW STRING"
   now works.

Mon Apr 28 16:40:13 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - dummycons: show flags and auxdata in the variable listing

 - dummycons: support 'sa' to set auxdata

Mon Apr 28 15:45:06 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - newapc: applied patch from Don Lewis which makes the driver send
   all 5 bytes when using sdtype 1.

Mon Apr 28 01:08:53 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - dummycons: use new set/instcmd callbacks for consistency

Mon Apr 28 00:48:47 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - apcsmart, hp, upscommon: dumped old 'installinfo' evil hack

Mon Apr 28 00:43:11 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - apcsmart: reworked to use new SET technique

 - dstate: added new callbacks for SET with new names

Mon Apr 28 00:27:09 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsd: check for world-readable permissions on upsd.conf, upsd.users
   and the CERTFILE to warn the admin about potential security problems

Sat Apr 26 23:14:03 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - fentonups, belkin, apcsmart: use new instcmd callbacks

 - dstate, upscommon: added new callbacks for INSTCMD with new names

Sat Apr 26 22:59:38 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - newapc: started converting trivial things to dstate functions

Sat Apr 26 22:41:01 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - apcsmart: converted to dstate functions

Fri Apr 25 17:00:42 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsd: fixed a leak in the user-level instant command lists

 - upsd: add "LIST UPS" to get the list of UPSes and their descriptions

 - upsd: add support for "desc = ..." in ups.conf

 - upsd: don't try to do the initial synchronization on a UPS that 
   isn't connected - this caused a segfault due to the use of fd -1

Fri Apr 25 16:36:06 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - dummycons: added 'lc' to show the current list of commands.

Fri Apr 25 16:28:50 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - genericups: converted to dstate functions

Fri Apr 25 16:26:48 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsstats: added another optimization to recycle existing connections
   to upsd when possible.  This is only effective if the entries in the
   hosts.conf refer to the same upsd - the hostname and port must match. 

1.3.3:

Fri Apr 25 15:25:16 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsimage, upsstats: applied patch from Andrew R. Ghali adding support
   for monitoring BATTVOLT.

Wed Apr 23 15:23:17 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - cyberpower: finally added the long-awaited shutdown code after
   puzzling through various other attempts to decode the protocol.  This
   one does the familiar "check status and send the right command"
   technique, and works on my 700AVR.  Your mileage may vary.

Wed Apr 23 08:04:22 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - belkin, cyberpower, hidups: converted

Wed Apr 23 07:40:29 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - dummycons: converted to dstate functions.  All commands now take the
   new variable names.  The add command is gone, since setting a value
   does that for you now.  The "L" (list all) command is also gone, since
   any variable name can exist now.

Tue Apr 22 19:25:03 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - bestups: now uses dstate functions directly

Tue Apr 22 19:23:33 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsd: new network commands: GET and LIST - these only use the new
   variable names, and will eventually replace REQ, LISTVARS, and more.

Tue Apr 22 16:20:36 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsd: started adding support for reading the new variable names natively

Tue Apr 22 15:43:09 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsd: the "DROP" access level has been removed since it could
   seriously confuse clients.  Unrequested UDP datagrams are still
   dropped silently, but "DROP" on a TCP connection will now return
   an access denied message.

 - upsd: split a bunch of functions, structs, and #defines into their
   own files for better organization.

Tue Apr 22 13:44:54 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - fentonups: converted to using dstate functions directly

Tue Apr 22 13:29:34 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsmon: fixed a bug where NOTIFYFLAG settings might not get
   assigned properly in all cases.

Tue Apr 22 12:55:32 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsmon: explicitly free all dynamic memory at exit for analysis
   in tools like valgrind

Tue Apr 22 12:52:21 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsmon: cleaned up SIGTERM/SIGINT/SIGQUIT handler

Tue Apr 22 12:48:30 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upslog: cleaned up SIGHUP/reopen handler

Tue Apr 22 12:45:31 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsd: relocated the exit/cleanup code and reworked the signal handler.
   Previously it was doing the shutdown in the signal handler and that
   could have been very messy if the signal was sent twice.

Tue Apr 22 12:41:41 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsd: strlcpy is no longer needed

Tue Apr 22 12:39:23 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsd: cleaned up some unnecessary snprintf calls in the netcmd handlers

Tue Apr 22 12:16:18 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - dstate: added some more details when the socket creation fails

Tue Apr 22 11:02:15 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsd: added a short synchronization delay at startup to give it a 
   chance to pull in the full set of data from the drivers.  This
   keeps upsmon from complaining that no data is available when it starts
   too quickly.

   upsd will give up after 5 seconds, and it only waits for drivers
   that are actually running and connected.

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

 - others: support -V too

Tue Apr 22 09:52:59 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - main: actually support -V to show the version

1.3.2:

Tue Apr 22 09:29:55 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - mge-ellipse: applied patch from Philippe Marzouk which makes things
   work again with the new state sockets by not getting stuck in the
   update functions.  It also removes dynamic memory in favor of simpler
   buffers and fixes the MFR value. [mge-ellipse_nut-1.3.1.patch]

Tue Apr 22 09:28:46 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - osd-notify: added examples for using osd to show UPS status from
   Arnaud Quette. [patch-1.3.1-osd-notify]

Tue Apr 22 09:06:40 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsd: converted the upsd.users "allowed instcmd" handling to be
   text-based.  It still works as before, including support for "all".

Tue Apr 22 08:58:38 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - var-map-init: more variables have been mapped to their initial new
   names.  Some variable names could still shift around as the entire set
   is converted.

Sat Apr 19 05:54:55 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsd, upscommon, state: added initial mappings for INFO_ and CMD_
   #defines to their new long-style names.  The ones that haven't been
   mapped yet will still use the %04X numeric hack.

Sat Apr 19 01:58:07 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsd, others: "exiting" is now used in the syslog instead of
   "shutting down", since that has a special meaning for UPS software

Fri Apr 18 10:01:46 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - dstate, sstate: switched to nonblocking I/O on the sockets

Fri Apr 18 09:29:44 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - snmp-ups, mge-shut, etc: applied patch from Arnaud Quette making
   these compile again in the new dstate environment.  [patch-1.3.1-AQ]

1.3.1:

Thu Apr 17 08:07:42 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - dstate, sstate: final #include ordering tweaks for portability

Thu Apr 17 08:02:14 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - mge-shut/hidparser: applied patch from Arnaud Quette adding this
   driver to the tree.  This will eventually replace the mge-ellipse
   driver.  [patch-1.3.0-mge-shut]

Thu Apr 17 05:11:36 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upscommon: reworked signal handling, and set an ignore on SIGHUP

Thu Apr 17 02:47:09 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upscommon: atexit code redesigned, and connected to dstate to make
   sure all storage in there is freed when the driver shuts down

Thu Apr 17 01:03:41 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsd, dstate: reconnected SET and INSTCMD through the new socket code

Wed Apr 16 23:22:17 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - drivers: upsdrv_infomax() is gone.  The list is now totally dynamic.

Wed Apr 16 23:11:58 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - sstate: delinfo, delenum now supported from the driver.  This makes
   all elements fully removable now - this is no longer a roach motel.

Wed Apr 16 23:00:13 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - sstate: added support for delcmd from the driver

Wed Apr 16 09:17:22 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - statedebug: removed - it is now obsolete

Wed Apr 16 09:12:39 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - configure, upscommon, upsd: all shm/mmap remnants have been removed

Wed Apr 16 09:01:43 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - drivers: removed all calls to writeinfo(), since using any of the
   existing functions to add/set/whatever now results in an immediate
   update of any listeners (upsd)

Wed Apr 16 08:55:45 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upscommon, main: chopped out all state file functions and the old
   socket code.

 - upsd: the old struct-based socket code has also been removed.  
   SET and INSTCMD will be rewritten to work over the new text-based 
   socket.

Wed Apr 16 06:28:35 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsd: finished switching all state file functions over to the new
   backend.  All state file code has been removed from upsd.

Wed Apr 16 02:32:02 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsd: the handlers for ANS and ENUM now use the new backend

 - upsd: started merging server-side state (sstate.c) access functions
   that use the new sockets.  

Tue Apr 15 05:54:44 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - dummycons: also added ac/addcmd and dc/delcmd for instcmd code tests

 - dummycons: added ae/addenum and de/delenum for testing enum code

Tue Apr 15 05:28:54 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - dummycons: wired up 'd' so DELINFO can be tested.  This doesn't
   do anything on the state file side of things, since there is no
   way to delete those entries.

 - dstate: info entries can now be deleted - this was never possible before

Tue Apr 15 04:58:49 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - dstate: added DUMPALL sock command to retrieve all driver data

Tue Apr 15 04:32:52 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - sockdebug: added a tool like statedebug for talking to the new sockets
   used by the drivers.  It also listens to stdin, so anything you type
   will be sent to the driver.

Mon Apr 14 03:40:25 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - drivers: cleaned up uses of getdata() since it now is const char *

Mon Apr 14 03:03:46 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upscommon: added dstate support for instant commands

Mon Apr 14 02:36:22 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upscommon: getdata() now pulls from the dstate storage

 - upscommon: addinfo, setinfo, addenum, and setflags are now connected
   to the new dstate storage

Mon Apr 14 01:01:08 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upscommon, main: started merging the new driver-server state update
   code that will use a local socket instead of a state file.

   The current state file scheme keeps data in at many places.  The driver
   has one, the state file has another, and upsd has two in mmap mode -
   one that's "shared_info", and one that's "info".  upsd can't just
   refer to "shared_info" directly most of the time, since it can change
   at any time, and we'd have consistency problems.

   This means upsd has to lock the file, copy from it into local storage,
   then unlock it again.  This happens every couple of seconds.  Similar 
   things happened with shared memory mode - we had all kinds of copies 
   of the data running around.  It's messy.

   The new scheme is text-based over a local socket with updates pushed
   from the drivers to any listeners (upsd will be one) as they happen.
   There is no polling - upsd gets the update as soon as possible.   

Sun Apr 13 20:14:29 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upscommon, main: removed shared memory support here, too

Sun Apr 13 20:06:22 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsd, statedebug: chopped out shared memory support in preparation
   for bigger changes in the driver-server layer

Sun Apr 13 03:52:48 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsd: rolled action checks into a single function to eliminate even
   more duplicated code in the individual do_* handlers

Sun Apr 13 03:42:28 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsd: more access-related cleanups throughout

Sun Apr 13 03:30:54 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsd: moved checks for TCP connections and access levels into
   their own functions

 - upsd: added flags and minimum levels to netcmds.h

 - upsd: dropped host-based auth for LOGIN/MASTER - upsmon must now use
   a user name when connecting

 - upsmon: dropped old host-based auth - MONITOR must now have a user name.
   If you're still using the old method, you have to convert it now.
   Scroll down until you see "upsmonusername".

Sun Apr 13 02:29:59 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsstats: reworked the IMG SRC calls to avoid the trailing &amp; when
   no extra image arguments are present

Sun Apr 13 02:19:08 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upslog.8: updated

Sun Apr 13 02:12:58 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upslog: -u is now supported so you can drop root powers after startup.
   If you rotate logs, be sure that the new file is writable by upslog's
   unprivileged user.

 - upslog: added getopt(), and split all of the former position-based
   arguments into normal getopt options.  The old mode still works for
   compatibility but will not be publicized.  Eventually it may go away.

Sun Apr 13 01:42:38 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsd.8, upsdrvctl.8, nutupsdrv.8: resync with reality

1.3.0:

Sun Apr 13 00:39:15 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsdrvctl: the 'status' command has been disabled to see who complains.
   It's not actually very useful, since it relies on pid files that can
   be stale.  If you want to know if the driver is alive, use a client
   and see if it's providing usable data.

Sun Apr 13 00:35:39 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsdrvctl: added support to pass through -r and -u to the drivers

Sat Apr 12 23:30:52 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - main: also added support for -u <user> to become a specific user
   when dropping root powers.

 - main: added support for chroot with -r <dir> just like upsd

Sat Apr 12 18:57:37 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsd: added chroot support as -r <dir>

 - upsd: dropped the old -t <port> definition, since -p does it for both.

 - common: added new functions to get and use struct passwd for becoming
   a user since they might not work after chroot.  glibc in particular
   wants a bunch of stuff in /lib that won't be there.

Tue Apr  8 16:56:37 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsd: added a bunch of frees to the shutdown procedures to allow
   clean runs through valgrind

Mon Apr  7 14:32:44 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - mge-ellipse, masterguard: switched to status_set calls

 - bestferrups801-807: dumped mind-blowing nested strcats and switched
   to status_set calls

Mon Apr  7 13:50:48 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsclient: detect a closed fd early in the SSL init in case upsd
   rejects the connection and hangs up on us

Mon Apr  7 13:24:37 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - dummycons: dropped old parsenet (really an ancient parseconf) and
   switched to the new parseconf functions

 - dummycons: cleaned up the parsing code and other things in general

Mon Apr  7 13:13:08 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - parseconf: removed old entry point - all callers have been converted

Mon Apr  7 13:09:48 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsmon, upssched, upsset, upsstats: converted to new parseconf

Mon Apr  7 12:34:44 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsd: switched to new parseconf functions

 - upsconf: same

Mon Apr  7 11:51:46 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - cgilib: cleaned up crusty checkhost() with new parseconf interface

Mon Apr  7 11:42:50 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - main: cleaned up the help/usage text and dropped references to the
   "old method" to avoid confusing new users

Mon Apr  7 11:38:35 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - parseconf: upgraded to version 4.  This one dumps the callback scheme
   and switches to a context buffer.  This will let us have multiple
   instances active simultaneously without getting "stuck behind" the
   parseconf functions.

   This version also features multiple entry points.  It can parse a
   file as before, but it can also read a line at a time or even a 
   character at a tie.

Mon Apr  7 11:17:58 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - drivers: dummyups is gone, and dummycons is now built by default.

Mon Apr  7 11:04:34 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - etapro, bestuferrups, powercom, sec: drop strcat, move to status_set

Mon Apr  7 11:00:25 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - apcsmart, belkin, sec, upscommon: drop strcpy()

Mon Apr  7 10:54:37 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - apcsmart: actually use the sdtype setting in the shutdown code

Mon Apr  7 10:52:11 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upslog: drop strcpy()

Mon Apr  7 10:50:53 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsd: set SO_REUSEADDR on the listen socket so we can restart it
   without getting stuck   

Mon Apr  7 10:43:13 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 * Forked from 1.2.2-pre4 to create the new 1.3 development tree

1.2.2-pre4:

Mon Apr  7 09:57:12 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - snmp-ups: here's the verbose changelog from the last merge, which
   I forgot to add at the time:

    - remove unnecessary malloc calls and fix a memory leak
      (oss-list-ups)
    - enhanced code for handling lost / restored communication
    - updated the man page
    - replaced nut/doc/drivers/snmp-ups.txt by nut/doc/snmp.txt, and
      modified the content to be more SNMP general
    - added alpha support for MGE UPS SYSTEMS MIB
    - added INFO_LOADPCT (RW) to ietfmib
    - added support for set, instcmd and partial shutdown
    - handle unsupported vars at init time (no more requested if not
      present)

Mon Apr  7 09:12:07 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsmon: relocated calls to drop_connection to fix a bug where the
   COMMBAD notifier wouldn't always work.  Reported by Steve Monett.

1.2.2-pre3:

Thu Mar 27 19:02:32 CST 2003 / Russell Kroll <rkroll@exploits.org>

 - liebert: added debouncing logic for the status lines.  This hardware
   occasionally wobbles, and we were getting false low battery warnings.
   The current approach forces 3 constant reads in a row before the new
   status gets exported to upsd.

 - liebert: applied patch from Alex Cichowski to add O_NONBLOCK to get
   this driver to work consistently on OpenBSD.

Thu Mar 27 17:18:58 CST 2003 / Russell Kroll <rkroll@exploits.org>

 - snmp-ups: added some limiters to the error routines to keep the
   syslog from being polluted too badly when a UPS disappears.
   You still get notices, but the rate is limited.

Mon Mar 17 09:14:22 CST 2003 / Russell Kroll <rkroll@exploits.org>

 - snmp-ups: Applied patch from Arnaud Quette to update to 0.2

Mon Mar 17 09:05:46 CST 2003 / Russell Kroll <rkroll@exploits.org>

 - powernet: applied patch from Dmitry Frolov:

   fixed bug in setting numeric variables, more info elements
   available, manpage update, cleaner logging and error handling,
   debugging code removed. Driver may be considered stable.

Tue Mar 11 01:58:13 CST 2003 / Russell Kroll <rkroll@exploits.org>

 - hidups: applied patch from Jonathan A. Davis to add MFR support on
   APC Back-UPS ES models.

1.2.2-pre2:

Thu Feb 27 13:44:16 CST 2003 / Russell Kroll <rkroll@exploits.org>

 - packaging/scripts: applied updates from Antonino Albanese for
   Red Hat systems.

Thu Feb 27 13:39:39 CST 2003 / Russell Kroll <rkroll@exploits.org>

 - sms: new version 0.70 from Marcio Gomes.

Thu Feb 27 13:28:49 CST 2003 / Russell Kroll <rkroll@exploits.org>

 - upsclient: fix 'skiplen' so queries on the default UPS don't have
   an extra leading space in the response.

Thu Feb 27 13:27:04 CST 2003 / Russell Kroll <rkroll@exploits.org>

 - upsd: reworked calls to sendback() - it can delete the current
   client structure if write fails, and some parts of the code were
   referencing it later, causing segfaults.  Reported by Patrik Schindler.

1.2.2-pre1:

Tue Jan 28 21:32:57 CST 2003 / Russell Kroll <rkroll@exploits.org>

 - FAQ: updated to reflect a group-writable /var/state/ups to keep
   upsd happy - it has to write a pid file there.  Reported by
   Sid Keller.

Mon Jan 27 18:47:40 CST 2003 / Russell Kroll <rkroll@exploits.org>

 - Applied portability fixes for builds on SGI:

   - bestfortress: remap inline to __inline
   - upscommon, upsd: cast MAP_FAILED to (itype *)

   Reported by Andrea Suatoni.

Mon Jan 27 18:34:31 CST 2003 / Russell Kroll <rkroll@exploits.org>

 - upsset: applied patch from Dmitry Frolov to fix ENUM/VARTYPE readings
   for multiple UPSes on a given host.	[nut-1.2.1-upsset.diff]

Mon Jan 27 18:05:25 CST 2003 / Russell Kroll <rkroll@exploits.org>

 - hidups: applied patch from David Brownell to add support for physical
   port ids.  This keeps things from bouncing around - the hiddevN names
   can change too easily.

   From the patch notes:

	USB physical port IDs are managed like USB:  dynamically.
	There are so many of the physical IDs that it's just
	impractical to pre-allocate filesystem nodes for all of them.
	Instead, the filesystem nodes expose their associated physical
	IDs using an ioctl.  In 2.4.20 and 2.5 kernels you already see
	these "usb-..." IDs in messages like this:

		hiddev0: USB HID v1.00 Device [MGE UPS ... ] on usb-00:02.3-5

	You need a version of the kernel hiddev driver that exposes
	those IDs.  Current 2.5 kernels (such as 2.5.51) include this,
	and recent 2.4 kernels could easily be patched to match that
	code.

	EXAMPLE:

	So long as you plug the green cable into root hub port 1 and
	the blue one into port 5 (label them!), it won't matter what
	other devices exist, or what order anything was plugged in or
	powered up, these "ups.conf" entries will still refer to the
	(same) UPS at the other end of those cables:

	[blue]
		driver = hidups
		path = usb-00:02.3-5

	# don't power these down until there's no other option!
     
	[green]
		driver = hidups
		path = usb-00:02.3-1

	Previously you had to use names like /dev/usb/hid/hiddev0,
	which could correspond to either UPS (or even a non-UPS
	device!) depending on the history of USB plugging/unplugging on
	that system.  You can still use those names, but now you have a
	usably stable naming option.   

Mon Jan 27 18:00:42 CST 2003 / Russell Kroll <rkroll@exploits.org>

 - sms.8, sms.txt: updated versions from Marcio Gomes.

Mon Jan 27 17:55:26 CST 2003 / Russell Kroll <rkroll@exploits.org>

 - bestups: added id 'AX1' for Best Power Axxium Rackmount models.
   Reported by Ales Casar.

Mon Jan 27 17:38:15 CST 2003 / Russell Kroll <rkroll@exploits.org>

 - upssched: reworked background startup code to add locking.  Previously
   it was possible to have two upsscheds starting at the same time, and
   both would create background daemons.  Unfortunately, the first one 
   would get "lost" and any timers on it could not be cancelled.

   This would only happen when two events happened at nearly the same 
   time in upsmon.  It's a rare event, but is still possible.   

   upssched now uses the LOCKFN directive to define a file that must be
   opened with O_EXCL set before it will start a background timer.  You
   must add this directive to your upssched.conf or it will not work.

   Reported by Gaspar Bakos.

Fri Jan 10 20:05:56 CST 2003 / Russell Kroll <rkroll@exploits.org>

 - upsclient: added sanity checking in the REQ/ANS handling code so
   a short response won't return garbage to the client.

Fri Jan 10 19:42:57 CST 2003 / Russell Kroll <rkroll@exploits.org>

 - upsd: changed the access checks on the numlogins handler to only
   require MONITOR access.  Previously, it was looking for "LOGIN"
   access which does not exist when you use upsd.users for your upsmon.
   This triggered the upsmon bug fixed below.

 - upsmon: added an alarm around the 'numlogins' read in slavesync().
   It's possible for upsd to ignore us, and that would make upsmon
   get stuck here.  The shutdown never runs locally, and bad things
   happen.  Reported by John David Garza.

 - upsmon: moved alarm setting/clearing into their own functions

 - upsmon: moved SIGALRM setup into the setup_signals() function

1.2.1:

Sat Dec  7 19:09:44 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - sms.8: new skeleton man page

Sat Dec  7 18:44:21 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - sms: added updated version from Marcio Gomes.  This driver had been
   in the tree previously with the same name before 0.50.0.

1.2.1-pre2:

Mon Dec  2 06:11:22 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - configure.in: added support for autodetection of gd include/linker
   flags, assuming 2.0.8 or higher is present.  Older versions of the
   gdlib-config script will be detected and avoided since they didn't
   provide good flag information.

Mon Dec  2 04:59:43 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - genericups: applied patch from Tomek Orzechowski and 
   Arkadiusz Mikiewicz to support Fideltronik Ares Series as type 19.

1.2.1-pre1:

Thu Nov 21 13:45:59 CST 2002 / Russell Kroll <rkroll@exploits.org>

 * various: minor doc tweaks

Sun Nov 17 17:01:10 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - upscommon: applied patch from linux@horizon.com to properly handle
   messages from upsd that are split up.  This is hard to reproduce, but
   explains why some functions (variable setting, instant commands)
   might have failed silently before.

Sun Nov 17 10:18:29 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - scripts/*: cleaned out dead wood.  Anything that referred to the
   old methods of invoking upsmon or the drivers has been removed to
   avoid confusion.

Sun Nov 17 10:11:14 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - liebert: this driver is back with a new name.  It used to be called
   multilink back in the 0.45 days.  This one is tagged experimental
   for now, as shutdown support is not yet configured.

Sun Nov 17 09:55:49 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - configure: reworked gd support, adding two new switches: 
   --with-gd-libs and --with-gd-includes.  The old attempts at trying to
   detect gd's dependencies have been dropped.

   If you build the CGI programs, this probably affects you.  The default
   settings probably won't work unless you happen to have exactly the
   same set of libraries that I did.

   So, look in your gd Makefile for "LIBS=", then use it here.

	./configure --with-gd-libs="<whatever>" --with-cgi

   Note: even though gd 2.0.5 added a helper script called gdlib-config,
   it's useless since it doesn't give you all of the -l flags.  gd 2.0.6
   and 2.0.7 are also broken in this regard.  I've sent a patch upstream
   to address this.  Once it goes in, this configure process will try to
   use it to get reasonable defaults.   

Sun Nov 17 09:52:53 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - main: fixed a bug where locking wasn't being disabled soon enough,
   which was breaking shutdown attempts with genericups on FreeBSD.
   Reported by Petri Riihikallio.

 - genericups: dropped the redundant shutdown message

1.2.0:

Tue Nov  5 21:02:00 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - scripts/RedHat-6.0: cleaned up dead zero-byte files

 - mge-ellipse: applied patch from Philippe Marzouk to fix a possible
   memory leak and correct model name reporting.  
   [mge-ellipse-modelname.patch]

1.1.14:

Tue Oct 29 09:13:23 CST 2002 / Russell Kroll <rkroll@exploits.org>

 - upsd, upsclient, upsstats: don't use malloc/strdup directly

Thu Oct 24 01:04:07 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upsd: if certpath isn't defined, don't call the OpenSSL init functions

1.1.13:

Tue Oct 22 22:41:41 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 * docs, man pages: various updates throughout

Tue Oct 22 05:11:53 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - isbmex.8: new man page

Tue Oct 22 05:10:16 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - etapro.8: new man page

Tue Oct 22 05:08:41 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - oneac.8: new man page

Tue Oct 22 05:06:57 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - bestfortress.8: new man page

Tue Oct 22 04:16:01 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - powernet: applied patch from Dmitry Frolov to fix setting some 
   variables that weren't tagged as string or enums.
   [nut-1.1.12-powernet-str.diff]

Mon Oct 21 01:25:07 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upsrw: applied patch from Dmitry Frolov to print the first variable
   again and fix VARTYPE queries in a multiple-UPS environment
   [nut-1.1.12-upsrw-list.diff]

Wed Oct 16 00:34:52 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - various: updated the documentation to match the code, and emphasize
   the use of upsdrvctl whenever possible.

1.1.12:

Mon Oct 14 13:40:49 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - scripts/Debian: removed obsolete code at request of Debian packager
   Luca Filipozzi

Sun Oct 13 21:17:13 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upssched: applied patches from John Horne:

   - A new command called EXECUTE will now pass control to the cmdscript
     immediately, without involving any timers.

	  AT ONLINE * EXECUTE ups-back-on-line

   - Some printfs are now upslogx() for debugging purposes

   - Other cosmetic changes

Tue Oct  8 07:41:28 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - masterguard: applied patch from Bert Driehuis which allows operation
   on hardware which NAKs the "whoami" query.

Tue Oct  8 07:34:26 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - etapro: applied patch from Marek Michalkiewicz which adds support 
   for CMD_SHUTDOWN and other small updates.

1.1.11:

Sun Oct  6 23:35:36 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - newapc: applied patch from Eddie C. Dost to fix setting variables
   that are expressed in minutes by the driver.

Sun Oct  6 23:21:24 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - docs/drivers: started the cleanup in here.  Documentation for drivers
   should go into their man pages.  Maintaining two sets of documentation
   is painful.

Sun Oct  6 23:08:46 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - man/Makefile.in: added 'install-misc-man' target to install the man 
   pages for the upsclient functions

Sun Oct  6 04:49:05 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - configure: rebuilt with autoconf 2.53

 - configure.in: reworked AC_DEFINEs to make autoconf 2.53 happy

 - acconfig.h: removed

Sun Oct  6 04:37:53 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - Applied patch from Petter Reinholdtsen:

   - upsclient: fix meaningless 'const int' 
   - upscommon, configure.in: only include sys/termios.h when it exists

Sun Oct  6 04:30:08 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upsstats: added checks to make sure there's a connection to upsd
   before trying to do a query.

 - upsstats: don't fall over when one of the systems is unavailable.
   Reported by John Horne.

Fri Oct  4 04:25:24 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upsstats: added a small optimization to keep the connection open when
   going from one UPS to the next on the same host.

Thu Oct  3 20:30:48 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upsclient: fix compiles in non-SSL mode - use ups->errbuf.
   Reported by Stephan Eisvogel.

1.1.10:

Thu Oct  3 01:20:05 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - Applied patch from Arnaud Quette [patch-1.1.9AQ]:

    - drivers/Makefile.in: added $(STRLCPY) for hidups, snmp-ups, powernet  
    - driver/snmp-ups.c: added "#include <arpa/inet.h>" - ucd-snmp include bug
    - driver/powernet.c: same as snmp-ups
    - mge-utalk updates:
      - added writable flag to some variables (transfer levels, wake and 
        grace delay, selftest interval and low battery level)
      - added instant commands ON, OFF (both are still beta) and BYPASS 
        (not yet tested)

Sat Sep 28 22:58:25 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upsmon: print a warning in the syslog when SSL is in use and server
   certificates aren't being checked - that is, when CERTVERIFY isn't 
   enabled.

   When compiled with SSL support, upsmon always tries to enable SSL mode,
   even if FORCESSL is not set.  This is intended to provide some extra
   protection as a bonus even if you haven't set up the client-side
   certificates.

Sat Sep 28 22:52:04 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upsclient: dumped upscli_strerror's static char * buffer and replaced
   it with a fixed-length buffer in struct UPSCONN.  I had a nagging
   feeling about static buffers and multithreaded applications...

Sat Sep 28 22:07:55 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - Applied patch from Simon Rozman [nut-1.1.9-upsimage.patch]
   for the CGI programs:

   - added imgvar table to hold description, how to draw each UPS variable 
   - added support for ACFREQ, OUT_FREQ and UPSTEMP

Sat Sep 28 21:39:35 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upsmon: move the connection code into its own function, and don't
   call it during addups(), in case the SSL definitions haven't been
   reached yet.  This was making odd things happen when MONITOR occurred
   above SSL-related lines in the upsmon.conf.

1.1.9:

Fri Sep 27 21:31:43 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - docs/ssl.txt: added some information on enabling SSL mode, including
   how you create certificates for the server and client.

 - docs/*: updated again to reflect reality

Sun Sep 22 05:37:29 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - mge-utalk: applied patch from Petter Reinholdtsen to handle systems
   where FALSE and TRUE are already defined.

 - upsmon: rename isset to flag_isset to avoid namespace clashes on
   Tru64 Unix 5.1.  Reported by Petter Reinholdtsen.

Sun Sep 22 04:03:53 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upsd: log "(SSL)" when a client logs in and SSL is active on that fd

 - upsmon: pass the new SSL-related values through to upsclient where
   appropriate, and handle the new errors too

 - upsmon: added CERTPATH, CERTVERIFY and FORCESSL to the config handlers

Sun Sep 22 03:26:37 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upsimage: call upscli_disconnect() to avoid "read failure" messages
   on upsd

Sun Sep 22 03:21:00 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upsclient: added upscli_sslcert() to allow specifying certificate
   data for verifying servers.

1.1.8:

Tue Sep 17 22:36:28 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - bestfortress: new driver from Holger Dietze for very old Best Fortress
   equipment.

Mon Sep 16 14:13:05 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upsimage.html.5: updated by Simon Rozman [nut-1.1.7-man.patch]

Mon Sep 16 14:02:24 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - oneac: applied update patch from Eric Lawson:

   - added CMD_RSTMINMAX to reset high/low observed voltage values

Sat Sep 14 23:18:58 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upsimage: applied patch from Simon Rozman [nut-1.1.7-upsimage.patch]:

   - move width/height/scale_height to imgarg table
   - add min/max bounds for imgarg values
   - parse numbers as hex only if prefixed with 0x (like 0xff00ff)

Fri Sep 13 12:01:33 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - configure.in: try to find SSL in the default paths before adding
   -I and -L to look for it in /usr/local/ssl.

Fri Sep 13 11:12:51 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upsstats: call upscli_disconnect before exiting normally

Fri Sep 13 10:18:09 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upsd: rework the return calls from ssl_read and the caller so we don't
   keep tons of sockets around that should be closed.

Wed Sep 11 14:50:52 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upsclient: call SSL_free and SSL_CTX_free as appropriate when
   shutting down a connection.

Wed Sep 11 14:45:00 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - statedebug: given explicit includes to remove the dependency on upsd.h

 - upsd: cleaned up some style issues and moved some function definitions
   around in order to make more things static in upsd.c

 - upsd: call SSL_free when a client disconnects

1.1.7:

Wed Sep 11 11:57:02 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - UPGRADING: created a document explaining some of the bigger changes
   for people coming up to 1.1 (or the eventual 1.2) from 1.0 or even 
   earlier versions.  Suggested by John Horne.

Wed Sep 11 11:41:37 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - various: applied patch from Petter Reinholdtsen to clean up compiles
   on Solaris with the SUN Forge C compiler.

Wed Sep 11 11:39:34 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - clients/Makefile.in: install upsclient.[oh] as 0644, not 0755.
   Reported by Shaul Karl.

Wed Sep 11 11:37:19 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - oneac: new driver from Eric Lawson fro Oneac EG and ON hardware.

Wed Sep 11 11:35:07 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - etapro: new driver from Marek Michalkiewicz for ETA UPS hardware with
   the "PRO" option for smart mode.

Wed Sep 11 11:33:40 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upsd: added CERTFILE in upsd.conf for SSL server-side certificate data

Mon Sep  9 16:45:44 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upsc, upslog: set the UPSCLI_CONN_TRYSSL flag for testing

 - upsclient: added initial SSL client support.  There's no way to
   specify certificates from the client side, so you can't verify
   that it's really upsd on the other end yet.

Mon Sep  9 15:52:27 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upsd: started merging SSL/TLS support with OpenSSL.  This is only
   compiled when using 'configure --with-ssl'.  This code is still
   quite new and wobbly, so it's off by default.

Mon Sep  9 10:44:58 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upsimage: don't draw the bar if the voltage is low enough to be off the
   scale.  Previously it looked like it was just barely on the scale.

Mon Sep  9 10:28:37 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upsimage: finished switching color definitions to upsimagearg.h

Mon Sep  9 10:18:35 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upsstats: don't let very short lines leak through inside an if block

Mon Sep  9 09:57:30 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upssched: actually fix the off-by-one error.  Reported by John Horne.

1.1.6:

Fri Sep  6 10:18:20 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upscmd: switched to upscli_getlist()

Fri Sep  6 10:10:56 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upsset: switched to upscli_getlist()

Fri Sep  6 09:56:46 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upsrw: switched to upscli_getlist() instead of direct access

 - man: first upsclient function man pages written

Fri Sep  6 08:50:14 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upssched: add serialization between the parent and child in
   start_daemon to avoid a race when starting multiple events.
   Reported by Ralph-Thomas Aussem.

Fri Sep  6 07:21:18 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upssched: fixed an off-by-one: don't use arg[5] from parseconf 
   unless it's actually there.  Reported by Ralph-Thomas Aussem.

Fri Sep  6 04:26:03 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upsstats: added glue to allow setting Simon's new upsimage color
   arguments from the template.  The new format just adds definitions
   to the existing command:

	@IMG BATTPCT bar_col=ff00ff summary_col=aabbcc@

Fri Sep  6 03:48:34 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 * man pages, docs: various updates to stay in sync with reality

Fri Sep  6 02:59:49 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upsd: log rejected TCP connections at LOG_NOTICE since they typically
   indicate some sort of problem

Fri Sep  6 00:47:48 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upssched: don't exit after starting the background daemon process in
   case there are more matching lines in the config file.  Reported by
   Ralph-Thomas Aussem.

1.1.5:

Tue Sep  3 02:33:40 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upsclient: don't try to set ups->upserror if ups == NULL

 - upsclient: added sanity checking to make sure no function tries
   to use a UPSCONN struct that hasn't been through upscli_connect

Tue Sep  3 02:25:13 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - multimon: removed, since upsstats can totally replace it now.

   Just install the current upsstats.html and then link to upsstats.cgi 
   with no arguments for the same interface that multimon used to provide.

Tue Sep  3 02:14:06 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upsstats: @UTILITYCOLOR@ substitutes the right color triplet for
   the voltage - green, unless it's out of bounds (lowxfer and highxfer)

Tue Sep  3 01:55:34 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upsstats: added @STATUSCOLOR@ to substitute the proper color triplet
   for the current UPS status.  This is intended for things like setting 
   the background color of the status cell - as seen in multimon.

Tue Sep  3 01:37:47 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upsstats: more new commands:

   - TEMPF - render temperatures in degrees F
   - TEMPC - render temperatures in degrees C (the default)

   - UPSTEMP - print the UPSTEMP variable in the current scale
   - AMBTEMP - as above, but with AMBTEMP instead

   - DEGREES - print &deg; and "C" or "F" depending on the current scale

Mon Sep  2 23:28:51 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upsstats.html, upsstats-single.html: new sample versions supplied
   to work with the new code.   

 - upsstats: changed the template file scheme a bit.  Now, loading upsstats
   with no host set will display upsstats.html.  If a host is set, it
   will display upsstats-single.html.

   As it turns out, upsstats with the iterative commands described below
   can effectively replace multimon.  This means the end of hard-coded HTML
   in one more program.

 - upsstats: added several new commands:

    - HOSTLINK - add a link to upsstats.cgi?host=<sys>, where <sys>
      is the current system being monitored.  This is the preferred way
      to add links to the "single UPS only" view.

    - FOREACHUPS - iterates through hosts.conf, repeating this block
      of the template for each UPS listed

    - ENDFOR - ends the FOR block started above

    - IFSUPP <var> - starts a conditional block which is only displayed 
      or executed if the current ups supports the named variable.  This
      can be used to exclude entire chunks of HTML so you get a nice 
      blank cell instead of "Not supported" everywhere.

    - ENDIF - ends the IF block started above

   You can put IFs inside a FOR block, but no other nesting is allowed.

Mon Sep  2 04:17:22 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upsstats.html: updated with a different scheme to compliment the new
   upsimage bars, including a fourth bar: output voltage.

 - upsimage: merged patch from Simon Rozman to add transparency, set
   colors via CGI parameters, and remove antialiasing for now

Mon Sep  2 04:11:42 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upsimage.html.5: new man page

Mon Sep  2 03:20:09 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upsclient: added a few more upsd error messages to the tables

Mon Sep  2 03:11:23 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upsrw: replaced sscanf parsing of network data with space-splitting
   techniques and added additional sanity checks to the VARDESC response
   handler.

1.1.4:

Sun Sep  1 17:36:37 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upsmon: actually send the right username, as opposed to always sending
   "upsmon".  Reported by Ludek Finstrle.

Sun Sep  1 04:00:11 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - Applied patch from Simon Rozman [nut-1.1.3-fixes.patch]:

   - upsstats: add support for @IMG OUTVOLT@

   - rpm.spec.in: change to --with-drvpath

   - scripts/RedHat-6.0/upsd.in: use DRIVERPATH properly

Sun Sep  1 03:05:01 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upsclient: invalidate fd and host in upscli_disconnect

Sun Sep  1 02:55:38 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - clients/Makefile.in: make install-misc now uses autoconf's 
   libdir and includedir variables when installing upsclient.[ho]

Sun Sep  1 02:42:52 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - configure.in, */Makefile.in: put strlcpy.o in its own variable so 
   it only gets linked where it's needed (drivers, upssched, upsd)

Sun Sep  1 02:35:37 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - clients/Makefile.in: make install-misc now installs upsclient.[ho]

 - upsfetch: removed 

Sun Sep  1 02:33:23 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upsmon: converted to the upsclient API

Sun Sep  1 02:01:19 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upsset: converted to the upsclient API

Sun Sep  1 01:36:55 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upsimage: converted to the upsclient API

 - upsimage: split up a bunch of nested if-then-else blocks for clarity

Sun Sep  1 01:28:34 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upsstats: converted to the upsclient API

Sun Sep  1 01:18:01 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - multimon: converted to the upsclient API

Sun Sep  1 00:52:57 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upslog: converted to the upsclient API

 - upsclient: shut down the fd when read and write fail, plus reset
   the UPSCONN fd value to -1 so dead connections can be sensed by the 
   client

1.1.3:

Sat Aug 31 23:28:41 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upsclient: upscli_strerror reworked a bit to reduce clutter

Sat Aug 31 02:57:47 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upsrw: renamed from upsct2, and converted to upsclient API

Sat Aug 31 01:15:49 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upscmd: converted to upsclient API

Sat Aug 31 00:41:58 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upsct: removed, since upsc now uses TCP connections.

 - upsc: rewritten to use upsclient API.

 - upsclient: merged a new network library to replace upsfetch.  This one
   is TCP only, and keeps per-connection state information, so that we
   can add SSL/TLS support later on.

   The upsclient interface is subject to change as other clients are
   converted.  Once it settles down, dynamic linking may be offered 
   in the future.

Mon Aug 26 16:29:57 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - everups: applied patch from Marek Michalkiewicz to add shutdown
   support for on-battery situations.  It's still not possible to shut
   down the load when on line, so watch out for power races.

Mon Aug 26 13:43:45 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - multimon: don't use MODEL as a test for whether the system is up,
   since it might not be provided by the driver.  Reported by John Horne.

Sun Aug 25 13:42:14 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - Applied patches from Simon Rozman:

   - powercom: small cleanups

   - upsstats: fix @IMG@ for the new upsimage bars - 130 pixels across

   - upsimage: improved the output:

	- added support for width, height and scale_height parameters
	- added support for outvolt
	- noimage now writes out a clue, why upsimage failed

Sun Aug 25 13:18:55 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - sec: upgraded with a combined patch from Jules Taplin and Eric Lawson.

Sun Aug 25 10:04:34 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - drivers/Makefile.in: make sure prefix and exec_prefix exist

Sun Aug 25 09:41:47 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - configure.in: explicitly use AC_PREFIX_DEFAULT so the configure --help
   display makes sense.  Some other variables were also rewritten to
   reference ${prefix} by default.  Reported by Fridtjof Busse.

1.1.2:

Thu Aug 22 04:30:54 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upsdrvctl: drop the separate versioning and just use the main package
   value all the time

Wed Aug 21 14:30:00 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upsmon: the MONITOR directive now comes in two flavors to allow
   specifying a username when connecting to upsd.

   The old way:

	MONITOR ups@mybox 1 mypass master

   The new format adds the username field:

	MONITOR ups@mybox 1 username mypass master

   Both formats are supported.  upsmon will only send a username to upsd
   if you use the new one, so it is fully backwards-compatible with older
   versions.

   To use this username method, you must add an entry for that user
   in your upsd.users, like this:

	[upsmonusername]
		password = mypassword
		allowfrom = myhost
		upsmon master			(or "upsmon slave")

   Once that's done, you can take the old ACCESS lines out of your
   upsd.conf, as they are no longer necessary.

   You can confirm that this is working by looking at the syslog.
   upsd will announce "Client <username>@<host> logged into UPS ..."
   instead of just a hostname.

   This new method of authenticating upsmon was suggested on the list by
   Tilman Baumann.

Wed Aug 21 13:25:26 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upsd: added a new directive to upsd.users for defining a "upsmon user"
   without explicitly rattling off all of the necessary commands.
   "upsmon master" (or "upsmon = master") allows LOGIN, MASTER and FSD.
   The "slave" setting only allows LOGIN.

   This will eventually be used to let upsmon log in as a "real" user,
   and get rid of host-based authentication for all higher functions.
   At that point, everything requiring a password will also require
   a username.

 - upsd: lots of little nitpicky changes for coding style, along with
   the removal of some dead code.

Wed Aug 21 12:30:58 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upsd: dropped the practice of looking up a UPS with a hardcoded 
   "default" in favor of just using the value of 'firstups' directly.

Wed Aug 21 12:19:30 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upsd: SET and INSTCMD no longer allow host-level authentication.
   You must send a username first - ala upscmd, upsct2, or upsset.cgi.

Wed Aug 21 06:53:19 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - configure.in: added --enable-strip to strip binaries at compile-time.
   Suggested by Andrey V. Pevnev.

Wed Aug 21 06:52:30 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - conf/Makefile.in: install upsstats.html along with the other CGI files.
   Reported by Andrey V. Pevnev.

1.1.1:

Wed Aug 21 04:18:03 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - docs: fixed the headers so the HTML conversion will work better.

Tue Aug 20 09:40:35 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upsstats: replaced just about all of the innards to add support for
   templates.  This finally drops the roughly 5-year-old hard-coded
   HTML.  upsstats will now read from upsstats.html in the CONFPATH.
   It acts like a preprocessor, replacing @directives@ with their
   actual values.  

   Only directives that start a line will be parsed, and lines which
   are not parsed will be passed through unchanged. 

 - cgilib: unescape variables and values even for GET requests

Tue Aug 20 07:19:53 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - gendb: added some per-driver magic to allow adding extra components
   for certain rules.  The new isbmex driver needs "-lm" on FreeBSD
   due to its use of sqrt(), and this is how we solve that problem.
   The sqrt problem was reported by Andrey V. Pevnev.

Tue Aug 20 03:00:44 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - cyberpower: drop some broken 'test for 13' code from the earlier patch.
   This one was creating all kinds of garbage in the syslog.

Tue Aug 20 02:54:15 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - main: warn the user when -a doesn't match any sections in ups.conf

1.1.0:

Tue Aug 20 02:25:23 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - cyberpower: moved model/firmware detection so it only runs once and
   has usable data for the "Detected blah blah on /dev/foo" line.

Tue Aug 20 02:06:28 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - newapc: applied patch from Nigel Metheringham to report time in seconds
   throughout.	[apctime.patch]

Tue Aug 20 01:59:37 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - cyberpower: applied patch from Len White to detect AVR models,
   firmware versions and the output frequency.

Tue Aug 20 01:55:39 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - isbmex: new driver from Edscott Wilson Garcia to support 
   SOLA/BASIC Mexico ISBMEX protocol equipment.

Tue Aug 20 01:52:31 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - genericups: added type 18 for "TrippLite Omni 450LAN with Martin's 
   cabling" - see http://lists.exploits.org/upsdev/Jul2002/00012.html

Tue Aug 20 01:46:12 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - */Makefile.in: reworked all path definitions.  bindir and sbindir are
   now taken from the autoconf substitutions so they can be used directly.
   INSTALLROOT is gone - use DESTDIR instead.

 - nut.spec.in: normally I never touch this, but this one is obviously
   correct: INSTALLROOT became DESTDIR

Tue Aug 20 01:22:43 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - */Makefile.in: reworked the install targets throughout.  The top-level
   install and install-cgi targets no longer do any work directly.  They
   now call other targets as dependencies.  If you are a packager that
   only wants certain things to happen, just call those targets directly:

   - install-dirs	- creates CONFPATH, DRVPATH, bindir, sbindir
   - install-bin		- installs clients, drivers, server
   - install-man		- installs man pages
   - install-conf	- installs sample config files
   - install-statepath	- creates STATEPATH, and sets owner/mode

   - install-cgi-dir	- creates CGIPATH
   - install-cgi-bin	- installs multimon, upsstate, upsimage, upsset
   - install-cgi-conf	- installs sample config files for CGI programs
   - install-cgi-man	- installs man pages for CGI programs

Tue Aug 20 01:13:05 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upsd: moved the first updateall() call below the uid switch so
   any "new uid can't read state file" situation generates an error
   while we still have stderr.

Tue Aug 20 01:10:28 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - parseconf: report the actual filename being opened and the specific
   error message when the open fails

Tue Aug 20 01:09:43 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 * Branched 1.1 tree from 1.0.0

1.0.0:

Mon Aug 19 08:42:35 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 * We made it!

Mon Aug 19 06:18:14 CDT 2002 / Russell Kroll <rkroll@exploits.org>

 - upsfetch: make sure the error from upsd for unknown instant commands
   is handled.  Reported by Len White.

*** File trimmed here 29 April 2003 ***

For entries before this point, start with version 1.0.0 and work back.
