2.0.2

Mon Jun 27 08:11:54 UTC 2005 / Arnaud Quette <arnaud.quette@mgeups.com>

 - Final version number bump for release.
 - driver.list: add Smart-UPS USB support, and leave the experimental
   flag for hidups/newhidups and APC units

2.0.2-pre2

Wed Jun 22 07:11:54 UTC 2005 / Arnaud Quette <arnaud.quette@mgeups.com>

 - tripplite: fix a battery charge bug, remove some extraneous
   leading zeros from integral variables (temperature, ...) and
   bump driver release to 0.8 

 (Cedric Tefft) [Alioth Patch #301783]

 - newhidups: remove experimental flag
 - driver.list: add MGE Ellipse Office, remove legacy hidups support for
   MGE units, add newhidups for APC units and remove experimental flag
   for newhidups only supported units

Tue Jun 21 14:51:02 UTC 2005 / Arnaud Quette <arnaud.quette@mgeups.com>

 - apc-hid: complete APC data for newhidups
 - libhid.c: complete HID usages

 (George Ross)

 - libusb.c: improve Report Descriptor length calculation (thanks to
   John Stamp for pointing out usbutils workaround), and minor type
   declaration fix
 - mge-shut, newhidups: improve exit reactivity for restart/shutdown
   sequences (both imply driver stop and start, while the driver might
   still be busy in its "long" update loop) by testing the exit_flag.

Fri Jun  3 13:01:55 UTC 2005 / Arnaud Quette <arnaud.quette@mgeups.com>

 - libhid.usermap: add a newline at the end, otherwise hotplug
   won't be able to parse it
 - libhid.c: change the dummy HIDItem test to remove exposed
   path that are broken
 
 (John Stamp)

Sat May 28 20:05:55 UTC 2005 / Arnaud Quette <arnaud.quette@mgeups.com>

 * newhidups, libhid, apc-hid:
   - fix typo error on offdelay vartable declaration
   - complete APC usages,
   - improve APC support (should work with BackUPS Pro, Back-UPS ES,
     Smart-UPS and BackUPS), but still lacks of shutdown on some models

 (John Stamp)

Thu May 26 12:17:55 UTC 2005 / Arnaud Quette <arnaud.quette@mgeups.com>

 - newhidups, libhid: code formating, and documentation
 - libhid.usermap: add preliminary APC rules

Wed May 25 14:09:02 UTC 2005 / Arnaud Quette <arnaud.quette@mgeups.com>

 - newhidups.8: remove the staleness information (not needed anymore),
   and add hotplug information.

Thu May 24 14:06:02 UTC 2005 / Arnaud Quette <arnaud.quette@mgeups.com>

 - mge-hid.h: add forgotten Protection Center definition

Mon May 23 09:21:10 UTC 2005 / Arnaud Quette <arnaud.quette@mgeups.com>

 - fentonups: complete the trace

 (Michel Bouissou) [Alioth Patch #301574]

Mon May 23 07:25:02 UTC 2005 / Arnaud Quette <arnaud.quette@mgeups.com>

 - mge-hid.h: add low end (non backuped) outlet handling
 - libusb: rework a bit the debug trace on device opening

2.0.2-pre1

Wed May  4 07:09:02 UTC 2005 / Arnaud Quette <arnaud.quette@mgeups.com>

 - bring testing release in sync with development release
 - bump release to 2.0.2-pre1

2.1.0:

Wed May  4 07:09:02 UTC 2005 / Arnaud Quette <arnaud.quette@mgeups.com>

 - solis: new driver for Microsol units

   (Silvino B. Magalhaes) [Alioth Patch #301272]

Tue May  3 09:09:07 UTC 2005 / Arnaud Quette <arnaud.quette@mgeups.com>

 * fentonups:
   - fix a problem with establishing serial communication,
   - fix UNITEK Alpha 500iC model exposure,
   - add separate battery voltage scales to better determine charge
     percentage when on AC/charging
   - add a user-defined battery voltage under which the UPS is considered
     on "low battery" condition when running on battery ("lowbattvolt")

   (Michel Bouissou) [Alioth Patch #301574] 

 - driver.list: add Powerware 3110 support, through genericups type=7

   (Paul Andreassen) [Alioth Patch #301573]

 - upscode2: merge this driver for Fiskars, Compaq and Powerware
   devices.

   (Niels Baggesen, Havard Lygre) [Alioth Patch #301144]

 - newhidups, libhid, libusb: improve UBS support. Interrupt and
   device reconnexion are now supported.

Mon May  2 11:14:40 UTC 2005 / Arnaud Quette <arnaud.quette@mgeups.com>

 - configure, man/Makefile: check which USB manpage(s) to install
 - man/Makefile: suppress snmp-ups duplication

 - pwmib.h, snmp-ups.ch8, driver.list: add Powerware MIB support for
   Powerware devices with ConnectUPS SNMP cards

   (Olli Salvia) [Alioth Patch #301568]

Fri Apr 29 16:03:22 UTC 2005 / Arnaud Quette <arnaud.quette@free.fr>

 - apcsmart: fix APC600 support, and bump driver release to 1.99.7

   (?) [Alioth Patch #301287]

Thu Apr 28 18:03:22 UTC 2005 / Arnaud Quette <arnaud.quette@free.fr>

 - configure.in, drivers/Makefile: check which USB driver(s) to build

Mon Apr 25 22:03:22 UTC 2005 / Arnaud Quette <arnaud.quette@free.fr>

 - Makefiles: add LDFLAGS support
 - drivers/Makefile.in: remove unneeded STRLCPY flag for newhidups

Sun Apr 24 19:03:22 UTC 2005 / Arnaud Quette <arnaud.quette@free.fr>

 - etapro.c: fix brokeness due to ser_get_line use

   (Marek Michalkiewicz) [Alioth Patch #301505]

Sat Apr 23 19:34:22 UTC 2005 / Arnaud Quette <arnaud.quette@free.fr>

 - cyberpower.c: add CyberPower 1000AVR support
 - driver.list: complete the missing CyberPower models

   (Dave Huang) [Alioth Patch #301288]

 - drivers/main.c: move upsdrv_initups() to point after become_user().
   This makes clear error message when user has no write privilege
   on the device.
 
   (?) [Alioth Patch #301284]

Fri Apr 22 11:42:22 UTC 2005 / Arnaud Quette <arnaud.quette@mgeups.com>

 - bcmxcp.ch8: reintegrate the new BCM/XCP driver (0.08) ; adjust
   Makefile's accordingly
 - driver.list: update according to the tested units
   http://web.telia.com/~u50205618/compatibility.html

   (Tore �petveit, Kjell Claesson) [Alioth Patch #301290]

Thu Apr 15 11:04:53 UTC 2005 / Arnaud Quette <arnaud.quette@mgeups.com>

 - netvisionmib.h, snmp-ups.ch8, driver.list: add Socomec SNMP
   card/external box (Netvision MIB support)

   (Thanos Chatziathanassiou) [Alioth Patch #301296]

 - driver.list: add MicroDowell B.Box BP 500/750/1000/1500
 - cpsups.ch: add MicroDowell support, and fix a segfault on upsdrv_shutdown

   (Armin Diehl) [Alioth Patch #301282]

 - upsstats.c: fix a case where upsstats.cgi crashes if hosts.conf has
   no valid MONITOR lines

   (Charles Lepple) [Alioth Patch #301461]

Thu Apr 15 11:04:53 UTC 2005 / Arnaud Quette <arnaud.quette@mgeups.com>

 - mge-shut.h: add Ellipse Pro models, and bump driver version to 0.63

 * newhidups patch-set:
   - libusb.c: enhance discovery performance (only search for MGE / APC),
   - newhidups.c: 
     - add the code to manage Interrupt Pipe (will improve USB flow
       by lowering polling on device), and a pollfreq parameter
       (default to 60 sec, newhidups will wait for Interrupt in the
       meantime). This is disabled for the moment
     - lower USB flow by only querying ups.status information within
       the above pollfreq period.
     - improve ups.status handling (needed for interrupt and partial
       status update)
     - enhance model name exposure
     - factorise the data walking code
     - a bit of code cleaning
     - enable device reconnexion (still not working!)
   - mge-hid.h: renamed from mgehid.h, and completed with the model names,
     outlet collection, and some missing data
   - apc-hid.h: add and complete this file
   - prepare the future merge of mge-shut
   - add Unitek VendorID

Tue Mar 22 11:10:53 UTC 2005 / Arnaud Quette <arnaud.quette@mgeups.com>

 - driver.list: add missing Mustek PowerMust 1400VA Plus and 2000VA USB

   (Carlos Rodrigues) [Alioth Patch #301289]
   
 * MGE patch-set:
   - driver.list: add Pulsar EXtreme C / EX RT, Comet EX RT, Pulsar SV,
     Pulsar PSX and NOVA AVR USB
   - mge-utalk.ch, mge-utalk.8: enhance support for old units, by adding
     disable_ups_comm, and Si discovering ; rework the model names,
     change driver version numbering to X.Y (instead of X.Y.Z) and
     bump to 0.85 (thanks to Martin Loyer and Patrick Agrain)
   - mgehid.h: add BYPASS management for newhidups
   - libhid.c: add the HID "Used" usage for the mgehid.h BYPASS
     management 
   - newhidups.h: add the lookup values for mgehid.h/libhid.c
     above changes
   - mge-shut.ch, mge-shut.8: rework the model names, add value
     lookup, bump the driver version to 0.62
 
 - apccmib.h: minor change to get the firmware of the Silcon DP3160E
   by interrogating an ap9606

   (Christophe Grenier) [Alioth Patch #301283]
   
 - fentonups.h, driver.list: add support for Sysgration UPGUARDS Pro650

   (Simon J. Rowe) [Alioth Patch #301281]
   
 - energizerups: fix for Linux 2.6 byte dropping

   (Viktor T. Toth) [Alioth Patch #301279]
   
 - powermust.c, driver.list: rework initups/initinfo to follow NUT
   standard recommendation, and add support for SquareOne Power QP1000

   (Carlos Rodrigues) [Alioth Patch #301146]
   
Mon Mar 21 15:52:53 UTC 2005 / Arnaud Quette <arnaud.quette@mgeups.com>

 - tripplite.c: fix the reporting of the battery voltage and charge

   (Andrew Cook, Nicholas J. Kain) [Alioth Patch #301271]

Fri Mar 18 13:36:20 UTC 2005 / Arnaud Quette <arnaud.quette@mgeups.com>

 - driver.list: add the missing Powerware 5119 RM (genericups type=20)

 - drivers/main.c, nutupsdrv.8: brings the drivers usage message and
   the generic driver man page in line with the getopt processing.
   It also remove an unused -d option from the getopt call.

   (Niels Baggesen) [Alioth Patch #301145]

 - genericups.h, genericups.8, driver.list: add Generic RUPS 2000
   and AEC MiniGuard UPS 700 (using Megatec M2501 cable)

   (Nick Barnes) [Alioth Patch #301143]

 * Forked from 2.0.1 to start the new 2.1 dev tree.

2.0.1:

Thu Feb 24 00:55:20 CST 2005 / Russell Kroll <rkroll@exploits.org>

 - Final version number bump for release.

Wed Feb  2 22:35:12 CST 2005 / Russell Kroll <rkroll@exploits.org>

 - clients/Makefile.in: add @MISC_UPSCLI_OBJ@ to the clean rule so I
   don't leak .a files when distributing the tree.

 - upsclient.h, parseconf.h: minor extern tweaks for C++ use

   (Arnaud Quette) [patch-2.0.1-pre4_upsclient-cpp]

Thu Oct 21 01:02:08 CDT 2004 / Russell Kroll <rkroll@exploits.org>

 - mge-shut:

   - enhance the server side variables handling, and particularly the
     wrongly exposed PowerShare outlet description (outlet.*.desc) when
     these doesn't exists,
    - expose the detected model at upsdrv_initinfo() time
     (this will be standardised in 2.1 tree),
    - add NOVA models support,
    - update manpage and driver.list accordingly,
    - bump driver version to 0.60

   (Arnaud Quette) [patch-2.0.1_nova-shut]

Thu Oct 21 00:47:54 CDT 2004 / Russell Kroll <rkroll@exploits.org>

 - ups.conf, upsmon.conf, cmdvartab: fix doubled "with", bad example
   (old style hostname without ups@ in front), and add ups.power.nominal

   (Niels Baggesen)

Thu Oct 21 00:43:52 CDT 2004 / Russell Kroll <rkroll@exploits.org>

 - conf/upsstats.html: add "" around the BGCOLOR hex triplet to make
   the HTML pass validation checks

   (Niels Baggesen)

Thu Oct 21 00:40:21 CDT 2004 / Russell Kroll <rkroll@exploits.org>

 - upsdrvctl: fix a nasty bug and make it actually honor -t every time.
   Also added a missing printf for verbose-mode and cleaned up the help
   text.

   (Niels Baggesen)

Thu Oct 21 00:38:49 CDT 2004 / Russell Kroll <rkroll@exploits.org>

 - powercom.h: don't set MAX_NUM_OF_BYTES_FROM_UPS as 16U since it's
   compared with signed numbers elsewhere

   (Niels Baggesen)

Thu Oct 21 00:36:30 CDT 2004 / Russell Kroll <rkroll@exploits.org>

 - upslog: use data from getpid as a %ld in the format string, and cast
   it to a long to avoid issues on 64 bit Solaris systems.

   (Niels Baggesen)

Thu Oct 21 00:32:21 CDT 2004 / Russell Kroll <rkroll@exploits.org>

 - cpsups: use ups.voltage.nominal instead of ups.voltage for the VA
   rating of the UPS.

   (Walt H) [psups-changevoltage2upspowernominal.diff]

2.0.1-pre4:

Thu Sep 30 03:20:04 CDT 2004 / Russell Kroll <rkroll@exploits.org>

 - upsd.users.5: refer to upsd.conf, not ups.conf.

   (Niels Baggesen)

Thu Sep 30 03:16:58 CDT 2004 / Russell Kroll <rkroll@exploits.org>

 * multiple files: applied attribute/format/printf magic to various
   header files with varargs to catch bad argument passing.  This
   uncovered a bunch of bad things done with format strings throughout
   the code which has been cleaned up.

   attribute.h was added as a workaround for those systems which lack
   support for this preprocessor directive.

   Based on the original patches from Dmitry V. Levin.   

Wed Sep 29 03:38:19 CDT 2004 / Russell Kroll <rkroll@exploits.org>

 - cpsups: recognize CyberPower 825 model

   (Walt H) [cpsups-2.0.1.diff]

Wed Sep 29 03:23:20 CDT 2004 / Russell Kroll <rkroll@exploits.org>

 - fentonups, mge-utalk, serial: clean up warnings when compiling on
   Solaris 8 - char is signed, size_t is unsigned long with -m64,
   and is unsigned int for -m32.

   (Niels Baggesen)

Wed Sep 29 03:14:30 CDT 2004 / Russell Kroll <rkroll@exploits.org>

 - newhidups: various fixes for BSD compatibility and others:

   - Separates devices in the scan list
   - Prints the libusb error if the HID descriptor can't be retrieved
   - Creates fake product and vendor strings if the PID/VID isn't in the
     database
   - suppress remaining unneeded trace.

   (Arnaud Quette, Charles Lepple) [patch-2.0.1-pre3_newhidups]

Wed Sep 29 03:09:36 CDT 2004 / Russell Kroll <rkroll@exploits.org>

 - libusb: only declare 'int retries' when LIBUSB_HAS_DETACH_KRNL_DRV is
   defined to avoid warnings about unused variables.

   (Niels Baggesen)

Wed Sep 29 03:05:33 CDT 2004 / Russell Kroll <rkroll@exploits.org>

 - fentonups: upsdrv_shutdown: use ups_on_line as a function properly.
   Reported by Niels Baggesen.

Wed Sep 29 03:00:47 CDT 2004 / Russell Kroll <rkroll@exploits.org>

 - upsd.8: fix ' at beginning of line

   (Niels Baggesen)

Wed Sep 29 02:46:18 CDT 2004 / Russell Kroll <rkroll@exploits.org>

 - snmp-ups: bumped to 0.41:

    - fixes snmp-ups compilation warning due to the buggy Net-SNMP header
    - various updates on comments and headers

   (Arnaud Quette, Niels Baggesen) [patch-2.0.1-pre3_snmp-ups]

Wed Sep 29 02:20:14 CDT 2004 / Russell Kroll <rkroll@exploits.org>

 - oneac: drop embedded ^Ms

 - oneac, ippon: rename SEC to SECS to avoid clashing with Solaris
   header files.

   (Niels Baggesen)

Wed Sep 29 02:15:15 CDT 2004 / Russell Kroll <rkroll@exploits.org>

 - tripplite: use sqrt instead of sqrtf (portability fix)

   (Niels Baggesen)

Wed Sep 29 02:14:13 CDT 2004 / Russell Kroll <rkroll@exploits.org>

 - driver.list: extend MGE entries

   (Arnaud Quette) [patch-2.0.1-pre3_compat-list]

Wed Sep 29 02:11:26 CDT 2004 / Russell Kroll <rkroll@exploits.org>

 - bestfcom: further address command echo; bumped to 0.11

   (Kent Hill)

Wed Sep 29 02:06:23 CDT 2004 / Russell Kroll <rkroll@exploits.org>

 - gendb: fix cosmetic models vs. drivers comment

   (Shaul Karl)

Wed Sep 22 01:55:58 CDT 2004 / Russell Kroll <rkroll@exploits.org>

 - energizerups: apply HID_MAX_USAGES workaround from hidups

2.0.1-pre3:

Thu Sep  2 02:52:43 CDT 2004 / Russell Kroll <rkroll@exploits.org>

 - newhidups: fix broken setvar/instcmd and limit trace noise

   (Arnaud Quette) [patch-2.0.1_newhidups-part2]

Thu Sep  2 02:43:35 CDT 2004 / Russell Kroll <rkroll@exploits.org>

 - tripplite: major updates to make it work with 2.0:

   - deal with command echoes from UPS (broke due to serial API changes)

   - rework serial I/O to sleep and centralize code

   - UPS relay no longer disabled on shutdown (this kept the UPS off when
     power returned)

   - sanity/security: bounds checking, cleaned up dynamic memory, snprintf
     instead of sprintf, no redundant serial setup ioctls

   - switched to standardized serial comm failure/success reporting

   - battery.charge now continuous instead of discrete

   - shutdown delays now user-configurable

   - new command handlers: load.off, load.on, shutdown.reboot,
     shutdown.reboot.graceful, shutdown.return, and shutdown.stayoff

   - new variables: ups.delay.start, ups.delay.reboot, and 
     ups.delay.shutdown

   - coding style cleanups

   - additional protocol documentation in comments

   - clarify support in man page

   (Nicholas J Kain)

Thu Sep  2 02:32:42 CDT 2004 / Russell Kroll <rkroll@exploits.org>

 - fentonups: also recognize the Unitek Alpha 1000is with data supplied
   by Antoine Cuvellard.

Wed Aug 18 00:08:11 CDT 2004 / Russell Kroll <rkroll@exploits.org>

 - fentonups: added strings to detect SuperPower HP360 and Hope-550 models
   supplied by Denis Zaika.

Wed Aug 18 00:04:46 CDT 2004 / Russell Kroll <rkroll@exploits.org>

 - driver.list: Pulsar / Comet EXtreme are only supported by mge-utalk

   (Arnaud Quette) [patch-2.0.1-compat_extreme]

Tue Aug 17 04:54:21 CDT 2004 / Russell Kroll <rkroll@exploits.org>

 - bestfcom: upgraded to version 0.10:

   - improved 'stale driver' issue when dealing with inverter status
     alarm messages from the UPS

   (Kent Hill)

Thu Aug 12 05:08:45 CDT 2004 / Russell Kroll <rkroll@exploits.org>

 - libhid: force static on raw_usage[] since its value can be used
   outside that function.

Thu Aug 12 04:50:03 CDT 2004 / Russell Kroll <rkroll@exploits.org>

 - hidparser, libhid, mge-shut, newhidups:

    - lower USB bandwidth consumption (and staleness problems) by:
       - adding differential polling: only poll static vars
         at init time ; semi static vars (ie transfer level, and
         other settings) upon calls to instcmd/setvar (ie
         users changes) and keep polling volatile every time.
       - adding basic USB report buffering (only the last
         report is buffered for 2 seconds), which allows
         not to ask again a report previously called for
         another data. This divides GetReport request
         by 4 to 10, depending on the models.
    - adds "driver unbind" mechanism to force claiming of the
      device (Linux only),
    - switch to sys/types.h for hidtypes, hidparser and mge-shut
      (by side effect),
    - improves a bit the retry mecanism, and only call dsate_datastale()
      if it fails with MAX_TRY,
    - improves a bit configure mechanism for libusb,
    - adds the HIDDumpTree () function to allow debugging of the
      UPS' supported data (mostly for others than MGE),
    - add Mustek VendorID and case in upsdrv_initups(),
    - adds basic reconnexion code (disabled for now as it's
      not working [as expected]),
    - make a bit of code beautification.

  (Arnaud Quette) [patch-2.0.1_newhidups]

Thu Aug 12 04:46:32 CDT 2004 / Russell Kroll <rkroll@exploits.org>

 - main: expose 'pollinterval' as a driver.parameter entry

   (Arnaud Quette) [patch-2.0.1_store-pollinterval]

 - hidups, mge-utalk: use timehead.h for consistency.  

   (Arnaud Quette) [patch-2.0.1_timehead]

Thu Jul 29 01:18:28 CDT 2004 / Russell Kroll <rkroll@exploits.org>

 - bestups: allow forcing the ID response from ups.conf to support
   hardware which does not answer that query (like the SOLA 610) or
   which gives bogus data.  

   (Jason White)

Thu Jul 29 01:04:20 CDT 2004 / Russell Kroll <rkroll@exploits.org>

 - powermust:

    - fix data stale warnings when hotplugging USB devices
    - fix ups.delay.{start,shutdown} variables

   (Carlos Rodrigues) [nut-2.0.1-pre2-powermust1.0.diff]

 - bestuferrups: 

    - support the Micro Ferrups model RE
    - set ambient.temperature from the UPS
    - fix a bug where the data is always reported as stale

   (Tim Thompson)

2.0.1-pre2:

Sun Jul 18 03:54:58 CDT 2004 / Russell Kroll <rkroll@exploits.org>

 - upsmon, upssched, snmp-ups, upsd: don't pass raw strings from config
   files directly to upslogx(), since they are subject to % expansion
   problems.
   (Ulf Harnhammar) [nut.noconfigparsecrash.patch]

Fri Jul 16 02:47:28 CDT 2004 / Russell Kroll <rkroll@exploits.org>

 - hidups: work around missing HID_MAX_USAGES in hidups.h if necessary

Thu Jul 15 01:34:47 CDT 2004 / Russell Kroll <rkroll@exploits.org>

 - victronups: upgraded to 0.1.9, added support for instant commands:
   calibrate.start, calibrate.stop, test.battery.stop, test.battery.start,
   test.panel.stop, test.panel.start, bypass.stop, bypass.start
   (Gert Lynge)

Thu Jul 15 01:31:52 CDT 2004 / Russell Kroll <rkroll@exploits.org>

 - powermust: new driver for Mustek Powermust units.

   This overlaps with mustek, added in -pre1.  Let's work on merging
   these somehow to get one super driver out of the deal.

   (Carlos Rodrigues) [nut-2.0.0-powermust0.11.patch]

Thu Jul 15 01:10:39 CDT 2004 / Russell Kroll <rkroll@exploits.org>

 - bestfcom: new forked version of bestferrups which better handles the
   inverter status alarm messages and more.
   (Kent Hill)

Thu Jul 15 01:03:13 CDT 2004 / Russell Kroll <rkroll@exploits.org>

 - upssched: fix the CANCEL events which broke during the changeover to
   text-based socket messages in 1.5.
   (Steven Schoch) [upssched.c.diff]

Thu Jul 15 00:43:18 CDT 2004 / Russell Kroll <rkroll@exploits.org>

 - hidups: call HIDIOCINITREPORT in every poll to fix stuck variables.
   (Stuart D. Gathman) [tt]

Thu Jul 15 00:39:34 CDT 2004 / Russell Kroll <rkroll@exploits.org>

 - mge-utalk: upgraded to version 0.81:
    - fixes the lack of RW variables (add dstate_setflag() and 
      dstate_setaux() calls)
    - fixes the loss of synchro on some models that doesn't support 
      settings restoration

   (Arnaud Quette) [patch-2.0.0_mge-utalk_081]

Thu Jul 15 00:07:29 CDT 2004 / Russell Kroll <rkroll@exploits.org>

 - esupssmart: drop various init-time setinfo calls which were probably
   the result of a straight addinfo -> dstate_setinfo translation.
   Variables no longer require explicit initialization, so it's better
   to just set them when the data arrives from the UPS. 

Wed Jul 14 23:43:14 CDT 2004 / Russell Kroll <rkroll@exploits.org>

 - fentonups: add a sleep to let some hardware wake up and fix a parsing
   bug in the initial detection phase code.
   (MLH)

Wed Jul 14 23:40:41 CDT 2004 / Russell Kroll <rkroll@exploits.org>

 - man pages: turn literal "-" into either "\(hy" or "\-" as appropriate.
   (Shaul Karl)

Wed Jul 14 23:32:26 CDT 2004 / Russell Kroll <rkroll@exploits.org>

 - ippon: add new ups.conf variables for controlling shutdowns:
    - sdelay - delay before switching off
    - rdelay - delay before powering on (0 means never).

   (Yuri Elizarov) [ippon-shutdown.patch]

Wed Jul 14 23:23:28 CDT 2004 / Russell Kroll <rkroll@exploits.org>

 - metasys: new driver for Meta System models: HF Line, HF Millennium, 
   HF Top Line, ECO Network, ECO, Ally HF, Megaline
   (BlaXwan) [metasys-ver05-2.0.1-pre1.patch]

Wed Jul 14 23:22:09 CDT 2004 / Russell Kroll <rkroll@exploits.org>

 - cpsups: added support for the CPS 1500AVR-HO model
   (Brad Sawatzky] (patch.1500avr-ho)

Wed Jul 14 23:21:10 CDT 2004 / Russell Kroll <rkroll@exploits.org>

 - everups: added support for types 73-76: NET 700/1000/1400/500-DPC
   (hunter)

Wed Jul 14 23:18:25 CDT 2004 / Russell Kroll <rkroll@exploits.org>

 - docs/cables/apc-rs500-serial.txt: new cable pinout data for using
   the Back-UPS RS 500 on a system without USB ports.

Wed Jul 14 23:11:15 CDT 2004 / Russell Kroll <rkroll@exploits.org>

 - cpsups: stomp C99 variable declaration that slipped past me in pre1.
   Reported by Gert Lynge.

Wed Jul 14 23:08:02 CDT 2004 / Russell Kroll <rkroll@exploits.org>

 - driver.list changes:

   - esupssmart: Add Infosec models 
   - genericups type 15: add Powerware 5125

2.0.1-pre1:

Tue May  4 17:10:55 CDT 2004 / Russell Kroll <rkroll@exploits.org>

 - upsdrvctl, others: renamed uc_sigmask again to avoid conflicts with 
   local names on certain operating systems.  They are now quite verbose
   since I'm getting tired of doing this.  Reported by Patrick Gosling.

Tue May  4 16:43:35 CDT 2004 / Russell Kroll <rkroll@exploits.org>

 - mustek: new driver for Mustek UPS hardware.
   (Martin Hajduch)

Fri Apr 23 04:37:34 CDT 2004 / Russell Kroll <rkroll@exploits.org>

 - cpsups: renamed from cyberpower1100 to better reflect the supported
   range of hardware: Cyber Power Systems units with the text protocol.
   Support for the OP500TE was added, and a bug in the runtime
   calculation was fixed.
   (Walt Holman) [cpsups.diff]

 - genericups: added "CON" setting to detect when the UPS is 
   disconnected.  This is only effective if your UPS or cable supports
   this feature.
   (stan / saticed.me.uk)

2.0.0:

Tue Mar 23 14:01:09 CST 2004 / Russell Kroll <rkroll@exploits.org>

 * Version number bump for release

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.5.15:

Tue Mar 16 14:53:25 CST 2004 / Russell Kroll <rkroll@exploits.org>

 - upsd/netuser.c: include user.h to pick up the prototype for 
   user_checkaction

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

 - upsd: actually check for MASTER privileges instead of allowing it
   for everyone.  This is not a hole, because MASTER is just a permission
   check command for upsd and doesn't do anything by itself.

 * Various documentation updates throughout

Sat Mar 13 03:49:27 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
   (Arnaud Quette) [patch-1.5.14_mge-utalk_shutoff]

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

1.5.14:

Mon Mar  8 06:12:25 CST 2004 / Russell Kroll <rkroll@exploits.org>

 - various: cleaned up tab damage throughout

Mon Mar  8 04:01:02 CST 2004 / Russell Kroll <rkroll@exploits.org>

 - main: allow 'pollinterval' to be set in the per-UPS sections

Mon Mar  8 03:57: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.

Mon Mar  8 03:44:01 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.5.13_newhidups011]

Sat Feb 28 23:33:19 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:15:06 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]

 - mge-shut: bugfix patch:

   - 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,
   - bump driver version to 0.59.
   (Arnaud Quette) [patch-1.5.13_mge-shut_059]

 - ippon: upgraded to 0.02 to small bugs in the init and shutdown code.
   (Alexander Fedorov) [patch-0.02]

1.5.13:

Thu Feb 19 14:19:36 CST 2004 / Russell Kroll <rkroll@exploits.org>

 - docs/*: various updates, including a reworked new-names.txt

Wed Feb 18 19:03:52 CST 2004 / Russell Kroll <rkroll@exploits.org>

 - upsdrvctl.8: resolve doclifter report: () -> {}
   (Eric S. Raymond)

 - everups: fix reversed versions - the NUT tree version goes in ()

 - cyberpower1100: fix inline declarations in upsdrv_initinfo.
   Reported by Paco Brufal.

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

 - mge-utalk: added the "oldmac" flag to support OldWorld Macintosh
   systems
   (Arnaud Quette) [patch-1.5.12_mge-utalk_oldmac2]

Fri Feb  6 16:53:41 CST 2004 / Russell Kroll <rkroll@exploits.org>

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

Wed Feb  4 18:33:56 CST 2004 / Russell Kroll <rkroll@exploits.org>

 - mge-utalk:
   - fixes the status set to FSD (replaced by OB+LB),
   - correct manpage: suppress sddelay / FSD references, add
     PowerSave to the TODO list, and add Pulsar EL support,
   - copyright year updates,
   - version bumped to 0.80.2.
   [Arnaud Quette] (patch-1.5.12_mge-utalk_update)

Tue Feb  3 11:16:00 CST 2004 / Russell Kroll <rkroll@exploits.org>

 - upsd: don't exit from upsd_cleanup so the callers get to set the
   right exit code based on what's happening

 - mge-shut: forward-port fixes from 1.4 tree:
   - atomic calls to dstate_dataok/stale,
   - enhance basic status fetching,
   - copyright year update,
   - version bumped to 0.58.
   [Arnaud Quette] (patch-1.5.12_mge-shut_update)

 - powercom: revise model names: KIN-525AP is now KIN525AP
   [Shaul Karl]

1.5.12:

Sun Feb  1 21:56:27 CST 2004 / Russell Kroll <rkroll@exploits.org>

 - cyberpower1100: new driver for CyberPower 1100AVR hardware
   [Walt Holman]

Sat Jan 31 15:31:03 CST 2004 / Russell Kroll <rkroll@exploits.org>

 - upsdrvctl: changed fork/exec code to use waitpid instead of SIGCHLD.
   This means the failure status is now available, and upsdrvctl will
   exit(EXIT_FAILURE) if any of the drivers fail to start or take too
   long to start.

   All three modes (start, stop, shutdown) now report errors this way.
   This exit code can be used in scripts to check for problems.

 - upsd: reworked exit flag (renamed from stop flag for consistency)

 - upsmon, upslog: reworked exit flags and signal handlers

Sat Jan 31 14:51:57 CST 2004 / Russell Kroll <rkroll@exploits.org>

 - main, serial, dummycons: reworked exit_code logic to preserve the
   signal number until shutdown to avoid calling syslog in the signal
   handler

 - main: use xstrdup on values from getopt that get freed later
   (Peter Eriksson)

Tue Jan 20 03:19:33 CST 2004 / Russell Kroll <rkroll@exploits.org>

 - snmp-ups: added the 'notransferoids' ups.conf option to disable 
   monitoring of the high and low transfer voltage points.  This is
   necessary on some APCC Symmetra equipment due to some reporting
   strangeness with three-phase power.

   If your Symmetra generates a red voltage block in upsstats, you
   probably need to use this flag.

Mon Jan 19 07:05:06 CST 2004 / Russell Kroll <rkroll@exploits.org>

 - serial, cyberpower: fix %02x format strings

Mon Jan 19 07:01:53 CST 2004 / Russell Kroll <rkroll@exploits.org>

 - powercom: add KIN1500AP support and fine-grained control over the
   different hardware-specific parameters for easier testing.
   (Shaul Karl)

1.5.11:

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)

 - INSTALL: /var/state/ups should be 0700, not 0600.  Reported by
   Richard Massa.

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

 - upscommon: removed

 - masterguard, esupssmart: changed upssend to ser_send_pace

 - tripplite, bestuferrups, etapro, sms: changed upssend to ser_send

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

 - common/strlcpy: no longer needed; removed

 - upscommon: removed dead code

 - tripplite, sms, etapro, esupssmart, masterguard, bestuferrups: 
   changed upsrecv to ser_get_line

 - tripplitesu, everups: changed upsrecvchars to ser_get_buf_len

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

 - genericups: added sdtime= setting to hold the control lines at the
   shutdown state for a specified period.  This should help reliability
   on hardware that needs a steady state instead of an edge on the
   shutdown line(s).

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

 - powercom: added support for KIN-525AP and finished conversion 
   to the new serial functions.
   (Shaul Karl)

Tue Jan  6 14:25:13 CST 2004 / Russell Kroll <rkroll@exploits.org>

 - belkinunv: converted to the new ser_ functions.
   (Peter Selinger)   

 - safenet: updated to version 0.03.
   (Arjen de Korte) [safenet-1.5.10.diff]

Sun Jan  4 20:42:59 CST 2004 / Russell Kroll <rkroll@exploits.org>

 - bestups: use S01R0001 for all shutdown situations so an on-battery
   shutdown isn't a one-way trip.

1.5.10:

Sun Dec 28 01:04:52 CST 2003 / Russell Kroll <rkroll@exploits.org>

 - various drivers: converted open_serial, upsflushin and upssendchar calls

Sat Dec 27 04:22:27 CST 2003 / Russell Kroll <rkroll@exploits.org>

 - mge-utalk: minor serial conversions; bumped to 0.80.1

Sat Dec 27 04:03:10 CST 2003 / Russell Kroll <rkroll@exploits.org>

 - isbmex: minor serial conversions; bumped to 0.03

Sat Dec 27 03:56:49 CST 2003 / Russell Kroll <rkroll@exploits.org>

 - esupssmart: started conversion to serial from upscommon; bumped to 0.21

Sat Dec 27 03:36:17 CST 2003 / Russell Kroll <rkroll@exploits.org>

 - blazer: converted to serial from upscommon; bumped to 0.07

 - victron: converted to serial from upscommon; bumped to 0.1.8

Sat Dec 27 03:20:41 CST 2003 / Russell Kroll <rkroll@exploits.org>

 - powercom: changed final upscommon calls to serial equivalents

Fri Dec 26 21:59:41 CST 2003 / Russell Kroll <rkroll@exploits.org>

 - apcsmart, bestups: use #defines instead of literals for 
   ser_read wait values 

Fri Dec 26 18:52:18 CST 2003 / Russell Kroll <rkroll@exploits.org>

 * Started changing URLs throughout:

   Old: http://www.exploits.org/nut/
   New: http://www.networkupstools.org/

   Specific references to pages other than the top level use the 
   random.networkupstools.org hostname to spread the load across
   the mirrors.

Fri Dec 26 18:35:59 CST 2003 / Russell Kroll <rkroll@exploits.org>

 - serial: fix upsfd/fd naming when using lockf code.  Reported by
   Pascal Hennequin.

Fri Dec 26 18:33:30 CST 2003 / Russell Kroll <rkroll@exploits.org>

 - ippon: new driver for Ippon UPS devices (Alexander Fedorov)

 - belkinunv: minor typo and doc fixes, bumped to 0.05
   (Peter Selinger)

 - powercom: changed to ser_ equivalent functions (Shaul Karl)

Fri Dec 26 18:18:41 CST 2003 / Russell Kroll <rkroll@exploits.org>

 - bestups: added nombatvolt= setting to override the nominal battery
   voltage data returned by the UPS.  This means you can finally have
   a reading of 100% when it's fully charged.  The driver also now
   publishes the data as battery.voltage.nominal for later reference.

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

 - oneac: this driver has been upgraded to the new naming scheme and
   serial code, and is welcomed back to the tree.
   (Eric Lawson)

Tue Dec  2 15:47:52 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.
   This version also now uses the new ser_ functions.
   (Gert Lynge) [nut159_victron_0_1_6_to_0_1_7_patch]

1.5.9:

Wed Nov 26 10:14:55 CST 2003 / Russell Kroll <rkroll@exploits.org>

 * Various doc updates throughout

Tue Nov 25 20:36:07 CST 2003 / Russell Kroll <rkroll@exploits.org>

 - cyberpower: dropped the experimental tag and bumped it to 1.00.  Recent
   development have made this quite stable, and the addition of shutdown
   code pushed it out of 0.x territory.

Tue Nov 25 20:17:33 CST 2003 / Russell Kroll <rkroll@exploits.org>

 - powercom: switched the raw read function to use the new ser_get_buf_len
   to allow some more old code to be removed from upscommon

Tue Nov 25 13:55:50 CST 2003 / Russell Kroll <rkroll@exploits.org>

 - upsc, upscmd, upsrw: check for insanity in the UPS argument and 
   provide a clearer error message about the upsname@hostname format

Tue Nov 25 13:19:57 CST 2003 / Russell Kroll <rkroll@exploits.org>

 - mge-shut: rename a few things that used the same names as various
   common functions (index, strlen, read)

Tue Nov 25 13:13:19 CST 2003 / Russell Kroll <rkroll@exploits.org>

 - belkinunv: new driver for Belkin Universal UPS hardware.
   (Peter Selinger)

Sun Nov 16 02:48:37 CST 2003 / Russell Kroll <rkroll@exploits.org>

 - drivers, upsd: added 'static' to various functions that aren't called
   from external parts of the code

1.5.8:

Sun Nov  2 15:58:14 CST 2003 / Russell Kroll <rkroll@exploits.org>

 - driver.list: update Fenton compatibility to include the P-series
   (Arjen de Korte) [driver.list.diff]

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

 - driver.list: fix Repotec/Repoteck confusion (Arjen de Korte)
   [nut-1.5.7.driver.list.diff]

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

Sun Nov  2 15:30:18 CST 2003 / Russell Kroll <rkroll@exploits.org>

 - dummycons: added ali/als/alc commands to allow testing of the new
   dstate alarm functions

 - dstate: added alarm_init/alarm_set/alarm_commit functions which work
   just like their status_* counterparts.  These functions also manage
   the ALARM flag in ups.status automatically.

Fri Oct 31 10:42:53 CST 2003 / Russell Kroll <rkroll@exploits.org>

 - serial: make sure it doesn't read too far ahead in ser_get_buf_len

Fri Oct 31 10:27:11 CST 2003 / Russell Kroll <rkroll@exploits.org>

 - serial: only pass the basename of ttys to uu_lock

Fri Oct 31 09:03:06 CST 2003 / Russell Kroll <rkroll@exploits.org>

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

Mon Oct 27 12:02:55 CST 2003 / Russell Kroll <rkroll@exploits.org>

 - apcsmart: added a workaround to not die when the capability string
   overflows at startup on models with the 451.2.I firmware.  Reported
   by Frank Weise.   

Mon Oct 27 11:59:57 CST 2003 / Russell Kroll <rkroll@exploits.org>

 - upsd: check the exit flag during the "Synchronizing.." step so you
   can actually abort it with ^C without waiting for the timer to expire.

Mon Oct 27 11:56:44 CST 2003 / Russell Kroll <rkroll@exploits.org>

 - apcsmart: reworked status code to use #defines instead of magic numbers

Thu Oct 23 01:32:32 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - cmdvartab: recognize beeper commands (Arjen de Korte)

Thu Oct 23 01:27:50 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - safenet: upgraded to 0.2; fixed a typo (LB, not BL) (Arjen de Korte)
   [safenet.diff]

1.5.7:

Sat Oct 18 16:42:17 CDT 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)

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

 - snmp-ups apccmib: set the input transfer voltages to sane values
   by using upsAdvConfigHighTransferVolt and
   upsAdvConfigLowTransferVolt.  This backs out the change from July
   which appeared to fix the Symmetra but actually caused another
   problem.

   Three-phase units like the Symmetra will need additional special-case
   code to handle voltage reporting sanely.

Wed Oct 15 14:03:44 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - cmdvartab: added clarifying units and fixed the battery.voltage
   description.  (Eric S. Raymond)

Wed Oct 15 13:59:47 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upslog: catch more signals and cleanly exit whenever possible

Mon Oct 13 16:38:29 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 * various: changed the docs to suggest config files that are owned
   by root.nut and mode 0640.  That lets the daemons read the files
   without being able to write to them.  Bad things could happen if 
   an attacker gained access through a daemon and started editing the
   config files. 

   The references to linux-hiddev were also clarified to show that it
   wants a complete path name and not just a directory.

   Reported by Patrick Smith.

Mon Oct 13 16:26:57 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)

Sat Oct 11 13:43:08 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - dummycons: cleaned up input routine by having dstate select stdin

 - apcsmart: enabled extrafd mechanism

 - dstate, main: changed fd polling routine to allow checking an extra
   fd in the usual select loop.  This lets drivers wake up when the
   UPS talks to them rather than waiting for the pollinterval to elapse.

Sat Oct 11 13:33:43 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - main: tell getopt to give us an argument for -i

Sat Oct 11 13:10:41 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - apcsmart: added support for ser_get_line_alert.  The OL/OB, LB, and
   RB status values will now be changed immediately if the UPS sends
   an alert character.  There may still be a small delay if the driver
   is waiting in dstate.

 - serial: added ser_get_line_alert to allow callbacks to the driver
   when an asynchronous alert character is received.

 - serial: reworked the existing ser_set_line to be a wrapper of
   ser_get_line_alert with the alert detection disabled.

1.5.6:

Tue Sep 30 00:08:54 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - drivers/Makefile.in: don't link upscommon into hidups, energizerups,
   or snmp-ups since they don't use any of those functions

Tue Sep 30 00:02:50 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - various: fix tab damage throughout

Mon Sep 29 23:16:30 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsdrvctl: clean up dynamic memory at exit

Mon Sep 29 22:49:57 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - parseconf: store strlen results in temporary buffers rather than
   calling it every time through a loop for better efficiency

 - parseconf: grow the wordbuf 8 characters at a time to cut down on
   calls to realloc

 - upsd: created per-client net parsing context buffers to avoid the
   memory churn from the repeated calls to pconf_init/pconf_finish.
   This was really noticeable when torturing upsd with things like
   'cat /dev/urandom | nc localhost 3493' - thousands of allocs and frees
   would be reported by valgrind.

Mon Sep 29 22:16:29 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - main, dstate: free more dynamic memory at exit (vartab, others)

Mon Sep 29 22:10:15 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - bestups: cleaned up the init sequence to avoid unnecessary dynamic
   memory and two small related leaks

Mon Sep 29 01:35:45 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - apcsmart: added a firmware lookup table to support very old and 
   very new hardware.  If your APC UPS doesn't support the 'a' query,
   you probably need to use this.  Affected hardware includes the
   CS 350 and the old Matrix 5000 series.

   Note: on the CS 350, you probably need to set sdtype=4 or you will
   not be able to shut down the UPS in all situations.  Test it to be
   sure.

 - apcsmart: added sdtype 4 for odd hardware that can't shut down the
   load unless it's running on battery.  This type forces the OB state
   temporarily and then starts the shutdown.  This technique was
   discovered by Martin Maney.

Mon Sep 29 01:05:43 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upslog: moved the pid file creation before the point where root is
   dropped so it can actually work again.  (Yuri A. Nosyrev)

Mon Sep 29 00:45:39 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - Makefile: don't call install-cgi-conf by default.  (Shaul Karl)

Mon Sep 29 00:25:54 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - bestups: moved the usual sync/ident checks into the normal init
   path so they don't try to run during the shutdown sequence

Mon Sep 29 00:00:41 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - bestups, fentonups: switched error reporting to common functions

Sun Sep 28 23:53:33 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - apcsmart, cyberpower, belkin: switched error reporting for normal 
   polls to use the ser_comm functions, since they perform rate-limiting

Sun Sep 28 22:14:59 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - genericups: changed to new serial functions and applied minor cleanups

Mon Sep 15 12:00:35 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - liebert: converted to new serial functions 

Mon Sep 15 10:29:10 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsset, upscmd: use getpwuid and getuid to get a reasonable default
   value for the Username prompt.

Mon Sep 15 10:12:02 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsd: actually return when no args are presented to parse_net rather 
   than continuing, which usually makes upsd fall over.

Mon Sep 15 09:45:00 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsimage: fix the nominal voltage handling so it doesn't go to 
   the neutral color just above that point.  It should now give a 
   green range flanked by grey with red outside that.

Mon Sep 15 09:33:18 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - bestups: reworked init sequence to use "pace" functions.  The hardware
   likes this a whole lot better, and it usually answers on the first
   attempt now.  It now starts in under a second, compared to almost 10
   before.

 - bestups: converted to serial functions

Mon Sep 15 07:41:26 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - cyberpower: changed raw read/write calls to ser_* equivalents

Mon Sep 15 07:13:12 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsd: don't print "Success" when a driver closes the state socket
   and read returns 0

Mon Sep 15 07:09:22 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - belkin: added a workaround for the brain damage on firmware 001
   with the truncated RAT command.  This fixes the annoying timeout
   warning and unnecessary delay when the driver started.

Mon Sep 15 06:10:38 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - belkin: changed the read sequence to sleep based on the expected
   response length to minimize the churn during normal polls

 - belkin: converted to ser_* functions

 - cyberpower: changed to not use upscommon functions without converting
   raw reads and writes

Mon Sep 15 05:19:44 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - apcsmart: changed the polling routines so a failure during normal
   operations makes it return to the GOSMART/ESC sequence immediately.
   It also resets the "last full time" counter so all of the variables
   will be refreshed when the UPS returns.

Mon Sep 15 03:38:08 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - mge-shut: squashed disallowed C++ style // comment

 - main: moved in signal handling and atexit cleanup operations from
   upscommon

 - main, dummycons: deal with things that disappeared from upscommon

 - dstate: moved status_init/set/commit here from upscommon

 - dstate: added dstate_is_stale()

 - apcsmart, fentonups: converted to ser_* calls

 - serial: added a new set of functions just for serial port operations.
   This is intended to replace the mess that is currently in upscommon.

   One of the big changes here is the intended replacement for upsrecv,
   which is called ser_get_line.  This has been written to use select
   rather than alarms, and it reads using 64 byte chunks.  It still
   stops when it sees endchar, but anything after it is lost.

   In other words, don't convert blindly from upsrecv to ser_get_line
   unless it's really a line-type protocol on polled hardware.

 - drivers/Makefile.in, gendb: added serial.o to deps

 - common: moved rtrim here from upscommon

Fri Sep 12 05:19:39 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsclient: report "Server disconnected" (UPSCLI_ERR_SRVDISC) when
   a read from the network returns 0.

1.5.5:

Fri Sep 12 03:24:21 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - Makefile.in: the install target no longer calls 'install-conf'.  This
   target only installs the .sample files, and they're quite annoying
   when your system is already configured properly.  The install-conf
   target will still be available for manual use.

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

 - belkin: changed the shutdown sequence to something that doesn't
   focus on outlet breakers.  This new one controls the whole UPS, and
   has been tested to work on my F6C525-SER both on line and on battery.
   This new sequence should work better on more kinds of hardware.

   If you use this driver, you need to test this and make sure it still
   behaves as expected on your system.  This was based on the original
   report from Robin Glover.

 - upsmon: removed old code for doing FSD without a upsname

 - belkin: fixed input.frequency to be the input and not the output,
   added the real output.frequency, and added battery.temperature

 - upsmon: don't print the reason from strerror() twice when upsmon.conf
   can't be opened at startup

 - upsmon: do the -K test after reading upsmon.conf so it actually knows
   where to look for the flag file.

Fri Sep  5 19:28:09 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - energizerups: only report staleness after 3 failed poll attempts.
   (Viktor T. Toth)

Wed Sep  3 19:30:24 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsd: actually disconnect a fd when the client drops off instead of
   spinning forever and consuming all of the CPU

1.5.4:

Tue Sep  2 13:40:42 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsd: explicitly free client struct data at exit for easier leak
   analysis

 - upsd: fixed a bogus free() in the cmdvartab code.  This only ran when
   upsd exited, so there was no chance of it breaking something.

 - upsd: dropped the confusing level-based access which used things like
   monitor, base and once had many more options.  Now it's just ACCEPT
   or REJECT, and the ACCESS word is no longer honored in upsd.conf.

   Old way:

	ACCESS grant all adminbox
	ACCESS grant all webserver
	ACCESS deny all all

   New way:

	ACCEPT adminbox
	ACCEPT webserver
	REJECT all

   Note that ACCEPT and REJECT can take multiple arguments, so this
   will also work:

	ACCEPT adminbox webserver
	REJECT all

   These changes now allow you to reject an existing connection.  If
   a client was previously allowed to connect and then has that
   access revoked by editing upsd.conf and reload upsd, it will be
   disconnected when it sends another command.

Tue Sep  2 12:39:25 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsd: test whether a host is allowed to connect before going 
   through the work of creating the client struct only to delete it again

 - upsd: simplified delclient() calls by adding a "delete" flag to 
   the client struct and only calling it from one place when that
   flag is set

Tue Sep  2 12:27:53 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsd: sprinkleed const throughout the handlers
 
 - upsd: handle action/instcmd checking in the handlers to simplify netcmds[]

Tue Sep  2 11:36:59 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsconf: forced "required" since all callers had that set anyway

 - upsd: cleaned up conf functions and simplified entry points

Tue Sep  2 11:17:24 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsd: clean up ups add/redefinition functions and move into conf.c

Tue Sep  2 11:06:44 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsd: cleaned up the network read code, dropping the old net parser

 - upsd: moved all remaining handlers in upsd.c to net_*.c

Mon Sep  1 13:50:39 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - lib/*: include SSL_CFLAGS and SSL_LDFLAGS too

Mon Sep  1 13:40:31 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - configure.in, lib/Makefile.in: explicitly set USE_PKG_CFG and test
   it before trying to do anything with pkg-config directories or files

Mon Sep  1 13:09:46 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - configure.in: changed default location of hiddev.h to /usr/include/linux
   since /usr/src/linux isn't always usable

Mon Sep  1 13:05:39 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.

Mon Sep  1 12:51:27 CDT 2003 / Russell Kroll <rkroll@exploits.org>

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

Mon Sep  1 12:49:08 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsimage: use the input transfer voltages again so the input graph
   shows the right normal/warning regions

Mon Sep  1 12:44:06 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - configure.in: read include/version for use in the new pkgconfig/helper
   script as @NUT_VERSION@

Mon Sep  1 12:33:39 CDT 2003 / Russell Kroll <rkroll@exploits.org>

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

Mon Sep  1 12:28:26 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - configure.in, lib/*: create helper data for pkg-config and a separate
   script which is installed during 'make install-lib' for external
   client builds.  (Arnaud Quette)

Mon Sep  1 12:26:47 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - victronups: actually applied the patch for better IMV Match Lite
   support from Daniel Prynych

Mon Sep  1 12:25:09 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - configure.in, clients/Makefile: use AR value from configure, and
   use ranlib when it exists to make libupsclient.a build on Mac OS X.
   (Petter Reinholdtsen)

1.5.3:

Mon Aug 25 03:01:58 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - hidups, snmp-ups: minor signed/unsigned comparison fixes

Mon Aug 25 02:52:13 CDT 2003 / Russell Kroll <rkroll@exploits.org>

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

Sun Aug 24 10:02:31 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - various: clean up prototypes, and add static where appropriate

Sun Aug 24 09:48:35 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - various: explicitly use (void) in function prototypes instead of ()

Sun Aug 24 09:43:23 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - various: add const to char * declarations where appropriate

Sun Aug 24 09:18:57 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upscommon, main, drivers: clean up shadowed variables

 - upsmon, upssched: clean up variables which shadow each other

 - upsmon: rename variables pipe and stat to avoid clashing with system
   functions of the same name

Sun Aug 24 08:52:19 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - drivers, common: use EXIT_SUCCESS or EXIT_FAILURE

Sun Aug 24 08:40:41 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - main: added explicit frees of dynamic memory when exiting due to a
   caught signal

 - clients, upsd: use EXIT_SUCCESS or EXIT_FAILURE

Sun Aug 24 06:24:25 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsmon: changed all exit calls to use EXIT_SUCCESS or EXIT_FAILURE

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

 - upsmon: added -K argument to test for the existence of the 
   POWERDOWNFLAG.  When it exists and has been set by upsmon, it 
   contains a magic string.  upsmon will exit(EXIT_SUCCESS) in this
   case, and exit(EXIT_FAILURE) in any other.

   This means you can dump the "test -f /etc/killpower" junk in your
   shutdown scripts and do something a bit cleaner like this:

	if (/usr/local/ups/sbin/upsmon -K)
	then
		/usr/local/ups/bin/upsdrvctl shutdown

		# sleep, reboot, whatever ...
	fi


Sun Aug 24 05:52:37 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - main: added support for 'chroot' and 'user' to be set in the global
   part of ups.conf.  This means you don't have to use -r and -u for
   those features.

Sun Aug 24 05:47:01 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - main: clean up variables and set static on some to prevent future
   info-grabbing anomalies

 - powercom: dropped references to main's do_forceshutdown - drivers
   were never supposed to use this value for anything

Sun Aug 24 05:42:31 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsmon: dropped "-i"

Sun Aug 24 05:38:05 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsmon: dropped "-d".  Debugging info is accessed with -D, just like
   upsd and upsmon.

Sun Aug 24 05:28:12 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsdrvctl: main's -d is gone, so don't set '-d 0' any more.

 - mge-shut, mge-utalk, powercom, sddelay: removed references to sddelay.

 - main: drop sddelay and -d, since it has confused driver authors and
   users for years.  If you want a delay after calling 'upsdrvctl shutdown',
   call sleep in your script.

Sun Aug 24 05:15:43 CDT 2003 / Russell Kroll <rkroll@exploits.org>

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

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

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

 - bcmxcp, microdowell, oneac: removed drivers with broken_driver set

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

 - configure: use the socklen_t detection from rsync (and everywhere else)

 - configure: add -Wsign-compare when using gcc to hopefully prevent more
   sign comparison issues from creeping in later

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

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

 - upscommon, drivers: clean up more sign issues

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

 - clients: other minor signed/unsigned comparisons fixed

 - clients: fixed calls and definitions involving numq and numa

 - upsclient: numq and numa can never be negative, so they've been changed
   to unsigned int

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

 - upsd: cleaned up a few signed/unsigned comparisons - check for negative
   returns, then cast sizeof to int and do the rest

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

 - upsd: fixed two leaks where the user command and action data wouldn't
   be freed during a reload

 - upsd: dropped useless arg from sstate_getinfo

 - upsrw: dropped useless arg from print_rwlist

 - upssched: dropped useless arg from open_sock

Sun Aug 24 03:56:23 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsdrvctl: removed -i - this belongs in ups.conf (and didn't work anyway)

1.5.2:

Sat Aug 16 11:43:19 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - main: added 'pollinterval' as a global setting in ups.conf

Sat Aug 16 11:38:44 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - main, upsdrvctl: applied patch from Gabriel Faber adding the
   -i argument to set the poll interval in the driver.

Sat Aug 16 11:33:50 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - Makefile.in: changed install-misc target to install-lib for consistency

Sat Aug 16 11:31:03 CDT 2003 / Russell Kroll <rkroll@exploits.org>

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

Sat Aug 16 11:27:04 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - victronups: applied patch from Daniel Prynych which adds better
   support for IMV MATCH Lite hardware.

Mon Aug 11 11:27:51 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - parseconf: use size_t instead of ints where appropriate

Mon Aug 11 10:45:54 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 * various: other minor fixes to please 'gcc -pedantic'

 - configure: test for socklen_t, and fall back to int if it's not there

 - upsd, upssched, sstate: use socklen_t instead of int where applicable

Mon Aug 11 10:43:50 CDT 2003 / Russell Kroll <rkroll@exploits.org>

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

Mon Aug 11 10:26:09 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - mge-shut: change ulong to unsigned long to fix compiles on FreeBSD

Mon Aug 11 10:23:58 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - snmp-ups: applied patch from Arnaud Quette fixing the other
   FLAG_* changes that I missed for 1.5.0.

Mon Aug 11 10:06:09 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - snmp-ups: applied patch from Arnaud Quette fixing a bug where it
   demanded a mib.conf even though that is not necessary yet.

Mon Aug 11 10:02:29 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - blazer: new driver Phil Hutton for Blazer UPS equipment, via
   Arnaud Quette.

Mon Aug 11 08:28:20 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - configure, mge-shut, hidparser: applied patch from Arnaud Quette
   fixing endianness issues on some architectures

Wed Aug  6 04:15:25 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - apcsmart: 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.

1.5.1:

Fri Aug  1 21:01:30 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - clients/Makefile.in: upssched no longer needs strlcpy

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

 - configure.in, clients/Makefile.in: build and use libupsclient.a
   when ar is available.

Wed Jul 30 00:36:53 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsd: switch to just a plain write() for network I/O now that
   UDP is gone

Wed Jul 30 00:34:20 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsd: dropped UDP support since it wasn't being used anyway.

1.5.0:

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

 - cyberpower: beautify the source somewhat

Tue Jul 29 20:31:10 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - various: added code to check the return code from upscli_splitname.
   It now refuses to split the input if you don't provide a UPS name.
   The UPS name is required by the new protocol.  There is no default.

Tue Jul 29 20:26:09 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsset: dropped code for old variable and command names

Tue Jul 29 20:07:00 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsstats: changed calls to upsimage to new names

 - upsimage: converted imgvar[] entries to new names

Tue Jul 29 18:40:02 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - upsstats: mostly converted to the new variable names.  There are a 
   few lingering things like UTILITYCOLOR.

Tue Jul 29 16:32:56 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 - newapc: renamed to apcsmart.  What was the oldest driver in the tree 
   is now officially retired.

Tue Jul 29 16:24:56 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 * Removed all of the code that supports the old variable/command names,
   including the various header files, all support functions, and so on:

   - Removed unconverted drivers: bestferrups801-807, bestfortress, 
     hp, sec, powernet

   - Dropped "new" vs. "old" code in clients: upsclient, upsc, upscmd,
     upslog, upsmon, upsrw

   - Fixed references to "FLAG_RW" and "FLAG_STRING" to be their ST_ 
     versions: snmp-ups, mge-shut, mge-utalk

   - Dropped variable/command name conversions: dstate, sstate, upscommon

   - Moved driver callbacks from "new_*" to their final names: upscomon,
     apcsmart, belkin, bestups, cyberpower, dummycons, esupssmart,
     etapro, fentonups, mge-shut, mge-utalk, microdowell, newapc,
     oneac, powercom, sms, snmp-upw, tripplite, tripplitesu, 

   - Dropped entire "oldnet" file of upsd

   * Total savings: about 224 KB of source.

   The CGI programs have not been converted yet, so 'make cgi' is broken
   at the moment.

Tue Jul 29 16:24:17 CDT 2003 / Russell Kroll <rkroll@exploits.org>

 * Forked from 1.4.0 to start the new 1.5 dev tree.

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]

*** File trimmed here 29 July 2003 ***

For entries before this point, start with version 1.2.0 and work back.
