$Id: ChangeLog 1 2022-02-25 17:20:12Z perette $

Issues:
	- Occasional crash in x10iod on SIGHUP (change logfile) which
	  can't be reproduced when I want it to be.

2022-02-25 Perette
- Fix keep-in-foreground conditional
- Don't execute event scripts upon confirmation of events transmitted.
  This prevents feedback, allowing devices to be set up on the same
  IDs as controllers.  The controller can directly drive the device,
  without a script intervening, simplifying setups, improving
  responsiveness and allowing stuff to partially work if daemon is
  down.
- If user and/or group are not specified, the daemon does not
  set them.  Modern startup systems such as launchd & systemd can
  take care of all this.
- Reworked Makefiles.
- Logging now defaults to stderr.

2009-06-18 Perette
- Now queues tasks that are started as a result of an X10 signal.
  One queue/house code & device combination.  Commands are monitored
  and expected to complete within a timeout interval, otherwise they
  are slaughtered.
- Numerous minor bug fixes.
- Added startup initialization script option.  Script is invoked
  after the shared memory is set up, eliminating race conditions
  for setting device types.
- Assorted bug fixes.

2004-10-17 Perette
- Eliminated some calls with potential reentrancy issues in signal handlers.
- Fixed some portability things for BSD.
- Removed a few optimizations to improve reliability of device control.
- Added support for starting sump pump daemon to x10iod.init.
- Changed fade command to not send any DIM commands if a light is already
  off.  Instead, just remind it that it's off.
- Fix uninitialized variable in ValidateCommand that was causing
  full-housecode commands to be dropped.
- New version of x10event script with some changes.
- Renamed "tw523" to correct name, "twoway".
- Added top level "uninstall" target.
- Added x10cli man page installation, fixed x10event man page installation.

2003-08-31 Perette
- Fixed the "reentrancy" issue.  Actually, it was an issue of a file
  being opened via fopen() and then close()d instead of fclose()d,
  which caused an intermittent core dump shortly after the signal was
  received when a new logfile was initiated.
- Compiled for Solaris.  Got rid of cfmakeraw(), which wasn't needed
  (everything set by cfmakeraw() is already set explicitly) and isn't
  available on Solaris.  Fixed a crapload of stuff detected by the
  cranky Solaris compiler (which is a good thing!).
- Moved x10rotate into x10's bin directory.
- Supplied new cheezy script to monitor modem and pause audio
  when the phone rings.
- Changes to x10iod.init to support the cheezy modem monitor script.

2003-08-13 Perette
- Added x10event(5) man page.
- Updated other man pages.
- Minor updates to scripts.

2003-08-10 Perette
- Put more stuff in source control.
- Added a few things that were options to have equivalents in
  the config file.
- Added top-level makefile.
- Fixed up the 'install' targets in the makefiles, including a change
  so it doesn't clobber x10's crontab.
- Wrote CLI makefile.  Updated daemon makefile.
- Fixed 'faststart' option to fade.

2003-08-09 Perette
- Changed initialization to setuid/setgid to x10 user/group.
- When a command is received from the powerline, don't wait()
  after the fork() for the external command.  If multiple
  external commands are recieved, they are run sequentially
  as each completes.  If an external command times out, it
  is killed.
- Updated x10iod man page.
- Put more stuff into source control.

2001-12-17 Perette
- Changed initialization to fork in the daemon instead of doing it in
  shell scripts.

2001-01-02 Perette
- Fixed some directories in the install.
- Documented the x10event file.
- Added the module log to the x10rotate.
- Fixed tests for light levels in the CLI.
- Fixed CLI turn command, which didn't fully reject invalid words and passed
  invalid stuff to the deamon (though the daemon didn't core!).
- Change to allow CLI to accept just a house code with "on" and "off",
  in which case all lights on, all lights off are sent.
- Added explicit "allon", "lightson", and "lightsoff" to turn.
- Change daemon to ignore device selection for all on, lights on, and
  lights off.  For expert commands, use unit code if passed, otherwise
  allow 0 to represent no unit code.
- Fixed AllOff in daemon to actually say AllOff, instead of AllOn (in
  debug messages and as parameter to x10event).

2001-01-01 Perette
- Allow the format string for running Me's to be specified in config file.
- Include a .init file to be put in /etc/rc.d/init.d... possibly RedHat
  centric, but it's convenient.
- Include a sample program to run.
- Change house code for Me's (parameter 2) to be %02d instead of %d, to
  stay consistent with naming of Me scripts.
- Added automatic creation of user x10, group x10.
- Added crontab & script to rotate daemon logs.

2000-11-08 Perette
- Added a perror() after open() of serial port on failure.

2000-10-03 Perette
- Fixed setup of mmap in x10map.C to write data into the file if the
  file is too small (probably because it didn't exist before).
  Unexpectedly, writing to a mmap'ed file will not extend the file
  if necessary, and instead causes a bus error...

2000-07-16 Perette
- Fixed the potential buffer overflow in a cheesy way -- it just tosses
  the oldest characters.  Since commands shouldn't be that long anyway...
- Removed the unimplemented RCFile class and stuck in one that I had
  laying around (settings.C).

2000-07-04 Perette
- Combined all interface programs into single applet that works off
  argv[0] or first option to determine it's action.  Improved
  flexibility of parser so it can always read either 'P3' or 'P 03'
  style house/unit code entry.  Added a bunch of error handling.

2000-06-30 Perette Barella
- Changed SIGHUP to restart log instead of terminate.
- Changed all of printf / perrors to route through a log() facility.
- Added error handling on several system calls, mostly only
  announcing the event.
- Added several command line options for device name, socket file, etc.
- Added usage statement.  See -? option for more details.
- Fixed open() calls for map, which were missing file permission parameters
  (the occasionally needed parameters) and causing bus error on write to
  memory mapped region.
- Added check for invalid command number, which previous caused segmentation
  fault when command 1,047,228 was received.

2000-06-29 & Prior, Andrew Turnquist
Developed original program.

