osdchat Changelog

0.1.8  (16 Jan 2004)
--------------------
	- client pipe fix  (stupid hack for now)
	- remove mistakes: app level length transmits, blocked
	  io problems, typo in sample config.
	tested with xosd 2.2.5

	Security:
	- avoid dangling clients that have not completed
	  connection startup.
	- fix miscellaneous blocking issues - preventing DOS.
	- make listening socket non-blocking to prevent a DOS
	  vulnerability caused by blocking if an RST is sent
	  between a select and accept call.
	- use passwd file info instead of environment variables
	  to get user information.
	- fix segfault by verifying the 0th argument, in case
	  the daemon is exec'ed by another program.
	- safer creation of log file.  If log file already exists
	  as a FIFO (and is not being read from), blocking will
	  occur.
	- safer creation of pid file.  Tries to account for the
	  file system changing underneath you.  Append uid to pid
	  file name so that stale pid files do not lock out other
	  users.
	- fixed buffer overflow caused by repeating valid options
	  in config file.  Only first option takes effect.
	- more paranoid call return checks


0.1.7  (15 Dec 2003)
--------------------
	- man page renamed to osdchatd, and only shows information
	  on the daemon.  (client is too simple to need one)
	- transmit lengths of prompt/format at the application level
	  to eliminate possible corruption from TCP/IP transmissions.
	- announcements can be set to show banned client attempting
	  to connect
	- a circular block list can be used to ban clients that exceed
	  warning levels.
	- add to printDBG a hybrid DEBUG/SYSLOG for better debugging.
	- add -L opt to output to a log file.
	- use default color/font if chosen ones fail.
	- some minor bug fixes
	- code seperation
	tested with xosd 2.2.5

0.1.6  (24 Nov 2003)
--------------------
	- decreased some memory overhead.
	- for known length transfers use complete_io to fully transmit
	  read+write syscalls
	- report to syslog at level LOG_ERR, with facility LOG_DAEMON.
	- do not output "daemon started" based on the exitence of pid
	  file.  After binding the address then report to syslog that
	  daemon started.  Nothing will print when daemon starts.
	- messages longer than lines*width do not get dropped, rather
	  they are shown, but each view raises the warning level by 5.
	- leave first 3 fds open (helps with debugging)
	- fixed buffer overflow caused when lines*width>4096
	- change working directory to / to prevent tying up a mounted
	  filesystem.
	- more robust debugging function.
	- remove signal unfriendly calls from sig handling functions
	- (client) add \n switch to prompt formatting to print user's
	  real name as found in the gecos field of the system passwd
	  file.
	- (client) client now waits for response from server, before
	  trasmitting the next line while reading from a pipe.
	- reload config file upon receiving a SIGHUP.  Also prevent
	  buf overflows caused by shifting config tokens after SIGHUP.
	- bound check on retrieving local path of user
	  config file (thanks Steve Kemp).
	- add -v opt to show version.
	- close config file descriptor after reading it (oops).
	- (client) make sure specified fifo file is indeed a fifo.
	- major code cleanup/migration/re-organization
	tested with xosd 2.2.5

0.1.5  (17 Nov 2003)
--------------------
	- read settings from a system/user configuration file
	  (/etc/osdchatd.conf or ~/.osdchatd), sample config file included
	- due to parsing annoyances use '\s' for white space when setting
	  the prompt format.
	- change -r to -P (makes more sense)
	- added option -W for setting maximum warning level, used
	  for limiting abusive clients that send many messages too quickly.
	- daemon broadcasts to all clients that it's shutting down,
	  eliminating SIGPIPEs on the clients' end.
	- internal improvements for client handling - should make it easier
	  to implement full-duplex communication (hopefully coming soon).
	- add option -T for displaying timestamps.
	- limited ability for client to read from a fifo file.
	- limited ability for client to read from pipe
	- debugging built in
	- code cleanup/migration

0.1.4  (16 Oct 2003)
--------------------
	- don't leave a useless pid file upon receiving certain signals
	- set bind to reuse socket address in case daemon is not killed
	  properly and is left in an undesired TIME_WAIT state, not
	  allowing to run the daemon again for a few seconds.
	- added command line option -r to customize the format of the
	  prompt (use special chars for hostname, login name, and tty name)
	- added man page (man osdchat)
	- console client now uses the readline library
	  (input line editing & history)
	- code cleanup/migration

0.1.3  (26 Sep 2003)
--------------------
	- client disconnects properly when host daemon is killed
	- fixed a memory leak created by wrapped lines
	- fixed a buffer overflow in message receiving
	- line wrap code re-written
	- don't kill the daemon if a new client connects and the
	  display doesn't initialize.  daemon remains running in
	  case a proper display is eventually initialized.
	- added command line option -a to specify types
	  of announcements (user connected, user disconnected, both),
	  and -m to limit the number of clients.
	- prompt bug fixes

0.1.2  (11 Sep 2003)
--------------------
	- some misc bug fixes
	- fixed some line wrap issues
	- port selection fixed
	- main background fork had issues on some machines
	  denying access for a client.  Never figured out
	  what was causing it, but problem was resolved by
	  just using the daemon(3) call to replace the fork code.
	- added command line option -k to kill
	  current running daemon using pid file.
	- client 4 sec. timeout to connect to server.
	tested with xosd 2.2.2


0.1.1  (18 Aug 2003)
--------------------
	- some bug fixes
	- fixed font selection
	- new command line options added
		- port selection,
		- line wrap width,
		- movement style
	tested with xosd 2.2.2


0.1    (11 Aug 2003)
--------------------
	initial release
	tested with xosd 2.1.3 & 2.2.2
