0.41.4-pre1:

Fri Aug  6 21:14:50 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - 0.41.4-pre1 released for Fenton driver testing over the weekend

Fri Aug  6 20:47:24 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - smartups/backupspro/upscommon: removed APC specific bits from recv
   and added a "endchar" variable so it can now be used by more models
 
   Also recv now supports "ignchars" - things to discard during the
   receive sequence ... handy for tossing async update characters.

Fri Aug  6 20:39:34 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - upscommon: addinfo no longer changes the info[0] value around.  That
   value should be set to the maximum size of the array and should remain
   constant from that point on.  In the event of unused entries, set their
   types to INFO_UNUSED.

Fri Aug  6 17:29:33 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - multimon: new field: UTILITY - changes colors based on transfer settings

   Any voltage beyond the low or high transfer points gets a red background
   to bring your attention to the situation.  Models without low and high
   transfer information will always be shown in green.

Fri Aug  6 17:02:16 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - smartups/backupspro: changed to report the input (line) voltage per
   the protocol in new-modules.txt

Fri Aug  6 16:11:27 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - upscommon: change to add data in a more generic manner

 - New model support: Fenton Technologies PowerPal/PowerOn/PowerPure units

   Use the "fentonups" driver...

0.41.3:

Wed Aug  4 08:12:47 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - Released as 0.41.3

0.41.3-pre3:

Mon Aug  2 15:32:55 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - upscommon/backups: more uu_lock #include tweaks

 - configure.in, models/Makefile.in: tweaks for FreeBSD uu_lock handling

 - backups: zero-length format string warning zapped

Sat Jul 31 21:32:54 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - multimon/upsstats: should now validate as HTML 4.0 transitional.

0.41.3-pre2:

Sat Jul 31 16:23:22 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - upsd: fixed nasty access problem where granting any level of access
   would actually grant full access to matching clients

Sat Jul 31 16:03:40 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - upsd: killed a really ugly memory leak in the REQ handler

 - backups/upscommon: fixed ifdefs: HAVE_UU_LOCK, not HAVE_UULOCK

 - upscommon: moved error reporting on opens around, and added numbers

Tue Jul 27 14:31:46 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - upslog: applied typo patch from Lars Balker Rasmussen <lbr@mjolner.dk>

0.41.3-pre1:

Mon Jul 26 08:48:33 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - Makefile.in: setver target added for my own sanity

Sat Jul 24 20:31:43 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - upscommon/upsd: workaround for systems without struct msgbuf

Sat Jul 24 20:22:37 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - upsimage.cgi: fixed coredump problem when running from the command line 

Sat Jul 24 17:07:33 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - upsmon: shutdown() fd when upsd disappears - fixes lingering sockets
   that stay in the CLOSE state forever...

 - upsfetch: sanity checks in getupsvar for variable names

 - smartups/backupspro/backups: message passing support added

 - upsd/upscommon: message passing now implemented.  

   This will be used later to send shutdown commands to models so they
   can power off the UPS.  To test this, connect to a upsd manually
   with nc or telnet and send "TESTSEND".  If your model program supports 
   it and everything is functioning properly, something should show up 
   in your syslog like this:

Jul 24 17:13:12 rkpent smartups[4406]: Received a message from upsd 
Jul 24 17:13:12 rkpent upsd[4409]: Sent test message to model 

   That's all it can do now.  The point of this release will be to make
   sure everything compiles cleanly and nothing else has broken before
   the fun part happens -- parsing all these messages.

   This uses SysV IPC stuff via msgget and friends, so if you don't have
   it, this isn't going to work.  I may add a named pipe interface or
   similar if enough systems don't support this method.

Wed Jul 21 17:45:21 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - Some Y2K notes are now in the FAQ for the curious...

Sat Jul 17 19:33:06 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - upsimage: cleaned up some duplicate image generating code

 - upsfetch: now handles bad/invalid password errors properly

 - upscommon: SHM_R/SHM_W fix for NetBSD and other systems that don't
   need such things defined since that's already the default

 - smartups/backups/backupspro: now include master version number for
   tracking bug reports and similar things

 - upsd: -h is now a valid option

 - configure.in: Sanity checking so "--with-uid 1234" forces the default
   value since the proper syntax for such things is "--with-uid=1234" ...

 - configure.in: Added -lz to the test for gdImagePng ... configure won't 
   link the test program without it. 

   For those keeping track, to make PNG images with upsimage.cgi, you must 
   have all of these programs/libraries installed:

  - gd 1.6 or above	http://www.boutell.com/gd/
  - libpng		http://www.cdrom.com/pub/png/pngcode.html
  - zlib		http://www.cdrom.com/pub/infozip/zlib/

 - Added support for PNG mode in gd1.6 and above from 
   Lars Balker Rasmussen <lbr@mjolner.dk>

0.41.2:

Fri Jul 16 10:21:35 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 * For automatic notification of releases (including prereleases), there
   is a new mailing list which only has announcements.  To get on, have a
   chat with majordomo@lists.exploits.org and "subscribe upsdevannounce"...

   This list is restricted posting so you will only get announcements   
   from me.  For questions and other messages, use the normal list.

 - RH6 stuff: Applied patch for spec file and script

 - multimon: Applied patch to handle backslash at end of line condition

0.41.2-pre3:

Fri Jul 16 08:05:36 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - upsmon: notifycmd call to system() changed somewhat.  This may fix the
   "no args" problems that occasionally surface.

 - conf/multimon.conf: another bad example: loadpct, not upsload

 - Oh yes, back in pre2 a snprintf() bug was fixed in upscommon....

Fri Jul 16 14:23:21 MET DST 1999 / Lars Balker Rasmussen <lbr@mjolner.dk>

 - multimon: Support backslashed quotes in config file.
   Report config file errors to user via cgi.

Thu Jul 15 16:24:09 MDT 1999 / Russell Kroll <rkroll@exploits.org>
 
 - conf/multimon.conf: fixed bad example (upstemp vs. UPSTEMP)

0.41.2-pre2:

Tue Jul 13 15:21:11 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - Applied RH6 compatibility patch from Bas Vermeulen <bvermeul@blackstar.nl>

0.41.2-pre1:

Tue Jul 13 08:28:00 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - upsmon: POLLFREQ and ALERTTIME now config file options for tuning.

Tue Jul 13 08:06:01 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 * The Boutell gd page is gone.  Get it while you can just in case the
   Unisys people turn their attention to me next.

   http://www.exploits.org/~rkroll/smartupstools/gd/

   And remember, if anything should happen, the _old_ (before 0.40.0) releases
   of this software have ALL of gd within the tarball!  Just find one of 
   those and rip it out.

 - smartups: #define SU600_HACK to try out experimental Smart-UPS 600
   support which effectively disables polling for a few variables.

Tue Jul 13 07:59:17 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - docs/FAQ: new file that should help people along...

Sun Jul 11 00:26:05 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - docs/protocol.txt: updated for upsnames and login/password

Sun Jul 11 00:11:02 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - docs/access.txt: updated for passwords

 - upsd: Now uses field 4 of the access controls as a password.  If 
   a client matches an access line and it has a password set, they must 
   have that password set or access will be denied.

   This only applies to the 'login' level of security right now.  Other
   (lower) levels do not require a password.  This may be reworked somewhat
   in the near future to be a little more obvious.

 - upsd: PASSWORD - sets a password for a client

 - upsfetch: upslogin now sets the password

Sat Jul 10 22:29:45 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - docs/access.txt: updated for login level security

 - upsd: enabled login level security (allow logins from clients)

 - upsd: fixed a potential crash when TCP clients disconnected

Sat Jul 10 20:28:36 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - smartups: Measure-UPS II now prints detection notice at startup

 - upscommon: handler for SIGTERM so detach_shm() gets a chance to run

Sat Jul 10 20:03:28 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - upsmon: now waits 10 seconds for getupsvarfd with alarm() just in case
   something goes wrong and it blocks...

Sat Jul 10 19:10:47 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - docs/new-modules.txt: updated for AMBTEMP and AMBHUMID.

 - multimon: config file now available for specifying custom fields

   This means you no longer have to suffer if all of your systems lack
   a certain variable - just exclude it to save on horizontal space.

   Some field names are ALL CAPS and have special meanings and are parsed
   in interesting ways.  Everything else is just a variable name straight 
   from the protocol and is displayed without modification.

   This is optional ... if you don't create a configuration, the old
   layout with the standard fields will be used.

   See conf/multimon.conf for a stock file.

 - upsd: new variables: AMBTEMP and AMBHUMID.

 - smartups: Now supports the Measure-UPS II sensors for external
   temperature and humidity readings.

Sat Jul 10 13:54:58 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - multimon: now properly close table cells when no data available for a field

 - upsfetch: handle ANS <foo> UNKNOWN properly, but it's an evil hack...

0.41.1:

Fri Jul  9 21:37:06 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - Prerelease testing ends, promoted to 0.41.1

0.41.1-pre3:

Thu Jul  8 10:09:47 MET DST 1999 / Lars Balker Rasmussen <lbr@mjolner.dk>

 - upsfetch/upsd: replaced bzero()/bcopy() by memset()/memcpy()

Thu Jul  8 08:45:23 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - clients/Makefile.in: Patched to get the $(NETLIBS) stuff right

0.41.1-pre2:

Wed Jul  7 22:08:45 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - configure.in: check for -lnsl and -lsocket for Solaris compiles

 - server/Makefile.in, clients/Makefile.in: pass NETLIBS to upsd/upsfetch

Wed Jul  7 10:38:01 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - server/Makefile.in: removed tab that was confusing Emacs

Tue Jul  6 20:40:05 MET DST 1999 / Lars Balker Rasmussen  <lbr@mjolner.dk>

 - upscommon: create_info() now checks to see if it can write to the state file

 - upscommon: writeinfo() only takes one param now (no initial mode)

 - models/*: all calls to writeinfo(1,...) are gone.

 - upscommon: writeinfo() syslogs errors that were silent before.
       
 - multimon: replaced strsep() by strtok()

 - upsfetch: replace bzero()/bcopy() by memset()/memcpy() for Solaris
   compatibility. 

 - upsstats: renamed getdate() to my_getdate() because of name-clash.

0.41.1-pre1:

Mon Jul  5 14:48:13 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - upsmon: External notifier.  See NOTIFYCMD in upsmon.conf.

   This is good for when you want to send pages when your power starts
   going crazy and people need to know about it.  Also see pager.txt in
   the docs directory for an example of how to use it.

   The idea for this feature came from Christopher Huffine but I decided
   to implement it differently.  He still deserves the credit though.   

Mon Jul  5 14:14:04 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - upsmon: Now uses TCP mode for monitoring

   *** This means it can no longer monitor older versions of upsd ***

   If you need to maintain older UDP-only upsd versions, keep an old copy
   of upsmon around!

Mon Jul  5 13:02:07 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - clients/: New program: upsct - like upsc, but it uses the TCP based 
	     function calls to get the job done.

 - upsfetch: Added new functions for TCP mode

Sun Jul  4 23:50:28 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - upsd: dropped some scaffolding from the TCP addition

 - upsd: new -t argument to set TCP port... -p sets *both* TCP and UDP
         but -t will override the TCP port only.

   In other words, for UDP on 1234 and TCP on 5678, use -p 1234 -t 5678 ...

Sun Jul  4 03:39:50 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - upscommon: sprintf() to snprintf()

 - multimon, upsimage, upsstats: sprintf() calls replaced with snprintf()

Sun Jul  4 03:17:33 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - docs/protocol.txt: updated for LOGOUT and TCP mode

 - upsd: fixed overflow condition in parse (off by one error)

Sun Jul  4 02:24:11 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - upsd: TCP connections.  Clients need at least "base" access from the
         ACLs or they will be dropped immediately upon connection.

   The protocol semantics are the same as before, with a new LOGOUT command
   to have the server disconnect you.  This obviously doesn't work in UDP 
   mode.

0.41.0:

Fri Jul  2 08:52:46 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - No bugs found/reported, so version number change only...

0.41.0-pre1:

Tue Jun 29 12:50:40 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - upsfetch: Generic ERR * responses now handled properly

   Also added specific support for "access denied" situations

Tue Jun 29 12:23:02 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - upsd: command line state file now prints depreciated behavior message

 - docs/access.txt: New documentation file for access controls

 - conf/upsd.conf: New stock config file with reasonable stock limits

Tue Jun 29 10:35:26 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - upsd: Access controls.  "ACCESS <action> <level> <aclname>"

   When <aclname> is matched for an attempt to do something that requires at
   least <level>, handle it according to <action>...

 - upsd: ACLs.  "ACL <aclname> <ipblock>" in the config file...

   This takes CIDR /nn style or the n.n.n.n format ...

   ACL localhost 127.0.0.1/32
   ACL localhost 127.0.0.1/255.255.255.255

   Those two lines are identical.

Tue Jun 29 08:42:30 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - upsd: Use "UPS <ident> <filename>" in config file to name UPSes
   Just putting them on the command line gives them dull ups-0 type names...

   This means you can just start upsd by itself now with no arguments.

 - upsd: now reads configuration file (upsd.conf)

0.40.3:

Fri Jun 25 22:37:00 CEST 1999 / Peter Bieringer <pb@bieringer.de> 
 
 - Bugfix upsd (supplied information wasn't ok)

Fri Jun 25 14:41:39 MDT 1999 / Russell Kroll <rkroll@exploits.org>
 
 - Default log facility now "daemon".  Use configure --with-faculity=... 
   to change it if this doesn't suit you.

Thu Jun 24 00:37:56 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - Reminder: to use the new features like port number and ups name in
   programs that link to upsfetch, you must reinstall upsfetch and then
   relink the program.  Otherwise it will use the old library which doesn't
   know about the new features.

 - clients/Makefile.in: upsfetch.h now installed with install-misc target

 - <subdirs>: changed Makefiles around so that ./configure generates 
   them from Makefile.in so that BASEPATH gets substituted.

   In other words, "make install" works from the subdirectories now.

Thu Jun 24 00:30:13 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - smartups/backupspro: try to wake up a UPS that goes to sleep on us
   by sending GO_SMART once in awhile

Thu Jun 24 00:16:16 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - upsd: now supports changing the udp listening port on the command line.
   Do -p <portnum> to change it.

 - upsfetch: now supports <hostname>:<portnum> in the host field 

   Naturally, things like <upsname>@<hostname>:<portnum> are also supported...

Wed Jun 23 23:47:06 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - upsd: now supports multiple local UPSes.  Just add the filenames to
   the command line and it will read everything it can find.

 - upsfetch: now supports <upsname>@<hostname> in the host field for
   function calls

0.40.2:

Mon Jun 21 07:21:20 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - Version number change from pre3 only.

0.40.2-pre3:

Fri Jun 18 16:49:38 MDT 1999 / Russell Kroll <rkroll@exploits.org>
 
 - upsd: some snprintf() implementations don't like having the destination
   buffer as one of the source strings.  listvars() now uses a temporary
   buffer to shove data around to avoid this problem.

 - server/Makefile: statedebug target added for easier compiling

Thu Jun 17 12:08:30 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - upsd: check return value of recvfrom before calling parse

0.40.2-pre2:

Tue Jun 15 19:17:49 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - upscommon: changed segment deletion policy - now called in cleanup_shm
   which is part of the exit() chain since certain systems don't let you
   attach to a segment that's marked for deletion.

   This means a kill -9 will leave shared memory segments hanging around,
   so don't do that on a model support module unless absolutely necessary.

Tue Jun 15 17:28:10 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - backupspro: installinfo for UPSTEMP removed - they don't support it

 - upsd: oops... moved the sys/shm.h include down to where it should be...

 - conf/upsmon.conf: changed shutdown command to something that should
   work on more systems

 - docs/new-modules.txt: updated for shared memory support details

 - upscommon: mark shm segment for deletion in case the model module 
   blows up so we don't leave segments hanging around in memory...

 - upsd/upscommon: shmid 0 is valid, changed tests around somewhat

Tue Jun 15 21:25:00 CEST 1999 / Peter Bieringer <pb@bieringer.de> 
     
 - server/upsd.c: "UNKNOWN: UNKNOWN" answers from upsd no longer given,
     prevents confusion of users
     
 - models/ups-trust425+625.c: see Changes.trust for details

Tue Jun 15 17:16:56 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - upsmon: now calls the system's wall binary to send messages.

 - upsmon: off by one error in the config file reader spotted by
   Alexander Savelyev.

0.40.2-pre1:

Mon Jun 14 00:01:29 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - Applied patch from Peter Bieringer <pb@bieringer.de> 

   - upscommon/upscommon-addon: use syslog instead of printf when 
     installinfo/installinfodirect fails

Sun Jun 13 23:01:14 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - server/Makefile: clean target now removes statedebug

 - Makefile.in: "make" turned to "$(MAKE)", subdir compiles reworked

   I guess I've been spoiled by GNU utilities.  Now I understand why
   nobody uses the -C option in Makefiles even though it's so nifty.

   All subdirectories are now handled with the following form:

   cd dir; $(MAKE) target; cd ..

Sun Jun 13 22:08:34 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - upscommon: "Can't open" code redone somewhat to not trash errno with
   printf - remember the old "Not a typewriter" problems from yesteryear?

 - upscommon: writeinfo doesn't write anything in initial mode now.
   The idea is to perform a check of writing to the state file before the
   process enters the background and loses the controlling tty.

   This should fix the bug where programs could pick up a bogus status
   value for a few moments after the initial writeinfo happened but before
   the first "real" (non-initial) writeinfo was called.

 - upscommon: create_info added to make the info array either from shared
   memory OR in conventional memory which then gets written to disk

   So, shm support in the model support programs should be a matter of
   calling create_info instead of declaring one locally.

   Model programs should ask the user if they want to disable shm and 
   then set shmok accordingly.  1 = allow if available, 0 = never use.

 - smartups: shared memory support (via create_info)

 - upsd: staleness interval now 15 seconds

 - upsd: staleness checks changed to be more descriptive

 - upsd: updateups completely reworked to handle shared memory mode
   and switching between shm and state files on the fly

 - upsd: big changes to the ups tracking structures 

   The arrays (iptr/statefn and so on) are now gone and are replaced with
   a linked list that should allow any number of local UPSes without
   needless memory waste.  There are hooks for multiple UPS support, but it
   is not implemented yet in the program or the protocol.

   I expect it to work like this protocol-wise:

   REQ MODEL -> gives you the model info for the first/default UPS
                which should work fine for most single-UPS users

   REQ MODEL@second-ups -> gives you the model info for a UPS called
                           "second-ups", assuming it exists

   As for the user interface, "upsc second-ups@localhost" should work.

Fri Jun 11 23:06:46 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - smartups/upscommon: info array reworked for shm compatibility

   Other modules to follow...

0.40.1:

Fri Jun 11 13:38:40 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - Remaining Makefile targets added to new autoconf Makefile.in scheme

 - QUICKSTART file added for the impatient

Tue Jun  8 04:04:26 MDT 1999 / Russell Kroll <rkroll@exploits.org>  

 - README file rewritten to remove the "crystal ball problem" where
   new users had no idea what each program did.  Things should now be
   at least as descriptive as they were in 0.34.

 - multimon, upsstats: reworked to handle Celsius a little differently

   Thanks to autoconf, you can now do ./configure --enable-celsius ...

Tue Jun  8 02:58:26 MDT 1999 / Russell Kroll <rkroll@exploits.org>  

 - GNU configure now handles all details previously set by editing
   config.h

 - All: include config.h

 - clients: moved upsfetch from common, removed common

 - Hmm, COPYING wandered off.  It's back now.

Sun Jun  6 20:53:20 MDT 1999 / Russell Kroll <rkroll@exploits.org>  

 - Source cleanups: new subdirectories: models, clients, server, common

 - Makefiles redesigned to handle new layout

 - #includes rewritten for new directories

Sat Jun  5 22:06:59 MDT 1999 / Russell Kroll <rkroll@exploits.org>   

 - GNU autoconf support begins
 
 - Source tree reorg begins - lots of include files moved around 

0.40.0:

Sat Jun  5 01:22:00 MDT 1999 / Russell Kroll <rkroll@exploits.org>   

 - Version number change, doc tweaks for release version

0.40.0-pre6:

Mon May 31 12:11:45 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - upscommon: skip the writing phase when the data is stale

   It detects this by seeing if the last data read timed out.  upsd picks
   up on this after a minute by default, so everything down the line gets
   notified.  To test it, disconnect the serial cable from your UPS and
   watch what happens about a minute later.

0.40.0-pre5:

Sun May 30 18:42:41 MDT 1999 / Russell Kroll <rkroll@exploits.org>

 - multimon/upsstats: handle new "OFF" value

 - backupspro/smartups: internal status "00" now results in "OFF" value

 - docs/new-modules.txt revised to reflect new "OFF" value for status

Sun May 30 12:05:24 CEST 1999 / Peter Bieringer <pb@bieringer.de>

 - upscommon.h: new function nolongertimeout, which should be called after each
    successful read. Triggers the "Serial port" syslog messages.

0.40.0-pre4:

Sat May 29 19:01:24 MDT 1999

 - statedebug now compiles cleanly on BSD/OS without any funny resolv.h stuff

 - timeout() now uses sigaction to restore the SIGALRM to default
   since SA_ONESHOT does not work on BSD/OS, maybe others...

Sat May 29 18:21:51 MDT 1999

 - Note: INFOMAX was supposed to be the maximum count of how many info
   members a model support program could use total.  Since this number
   can vary wildly (backupspro uses 4, smartups uses at least 12), it
   was a way to save memory and do some bounds checking at the same time.

   To keep the confusion down, I've moved the #defines for INFOMAX around
   so that it's not forced to 16 in the upscommon module.  It should be
   defined in each model's source file if they compile with upscommon.

 - TODO: Move the growing assortment of model support programs to
   models/ to keep the source tree clean as suggested in Changes.trust

 - smartups/backupspro: Fixed help info for arguments (/dev/...)

 - merged in Trust UPS support from Peter Bieringer <pb@bieringer.de>
   See Changes.trust for more details

 - upsimage.cgi now uses -lgd rather than bluntly specifying the full 
   filename to the library - this will break compiles if your system
   doesn't find the lib and header files.

Sat May 22 16:22:29 MDT 1999

 - upscommon now uses sigaction() directly for timeout checking to get
   around a problem where read() would be restarted on some systems.

Fri May 21 17:27:54 MDT 1999

 - upslog now enters the background automatically.

 - upsmon still had the bogus openlog() facility.  Fixed.

 - Forgot to mention in the pre3 notes that a fix was added for hangs
   in the upsfetch module when the target host was down/unreachable...

0.40.0-pre3:

Tue May 18 17:56:06 MDT 1999

 - The example hosts.conf wandered off somewhere since 0.34.  It's back now.
   The install-cgi target also now copies it across just in case.

 - RECVTIMEOUT condition handling added to upsstrerror() - was causing
   some bogus 'unknown error' messages when it was a known condition...

 - upsfetch: error handling for DATA-STALE added

 - upsd: staleness check now performed on the state files.  After 60 seconds
   (default) of not changing, they will be declared stale and clients will get
   an error.  This is the first of many "no contact with UPS possible" 
   conditions that will be added.

   This is a pretty evil hack right now until a cleaner method is added.

 - I had openlog() using some bogus values for the second parameter.  The
   facility is now configurable in config.h - see #define LOG_FACILITY.

 - Computer room floods due to massive rainfall in Colorado.  Development 
   lags.  Ugh.

0.40.0-pre2:

Tue Apr 27 17:34:24 MDT 1999

 - Serial locking change - compiles on FreeBSD will now use uulock() instead
   of flock() without any change to config.h.  The eventual goal is to have
   autoconf take care of this without any future #define hacking.

   This means NO_SERIAL_FLOCK from pre2 is gone.

Mon Apr 26 17:10:44 MDT 1999

 - fix: upscommon: cfsetospeed() now has a matching cfsetispeed()
   Thanks for Alexander Nedotsukov for spotting this.

 - fix: upsmon now compiles on BSD/OS - needed to include errno.h

 - The default Makefile target no longer compiles the CGI programs.
   Do "make cgi" to build them.

 - New config.h #define possibility: NO_SERIAL_FLOCK - use this on
   FreeBSD 3.0 systems if you get an "not supported operation" error.
   Recommended by Alexander Nedotsukov.

 - backups: flock() test moved down a chunk in the serial open code.
