* see http://dwun.sourceforge.net/CHANGES for updates

	- /etc/dwunrc can have leading spaces.
	- recommend that "exec 4>&-" be added to /etc/ppp/ip-up so that
	dwun won't wait for daemons launched there to exit.
	- document that pppd only creates /var/run/ppp-N.pid when the
	connection is up.
	- compile error with Linux libc5 fixed.
	- src/snprintf/LICENSE.txt included.
	- version 0.96e
* 2 Feb 2001
	- timecon fixed.
	- version 0.96d
* 22 Jan 2001
	- onconnect_wait added.
	- onconnect and ondisconnect cannot run simultaneously.
	- fd3 for commandon and commandoff.
	- dwunmakeauth can initialize authfile itself.
	- include snprintf/*.[ch] in tarball.
	- version 0.96c
* 12 Jan 2001
	- ondisconnect fixed. (Thanks to Carsten Block for reporting).
	- version 0.96b
* 11 Jan 2001
	- having more than around two bind args could wreak havoc. (Buffer
	overrun). (Thanks to thomas jacquart for reporting problems he was
	having).
	- pidfile created mode 0644 by both dwun and dwunlog.
	- documentation tweaks.
	- dwunmakeauth refuses empty passwords.
	- version 0.96
* 30 Nov 2000
	- don't get bind errors when restarting.
	- date fix in logfiles for some locales for systems without snprintf.
	(upgraded to snprintf-2.2).
	- don't build libsnprintf.a if system has native snprintf.
	- no longer need dwunwait.
	- fixed ISDN instructions.
	- *BSD fixes.
	- rpm init.d "stop" fixed and init file included in runlevels.
	- version 0.95
* 15 Oct 2000
	- SHUTDOWN fixed.
	- don't use disconnect_wait when shutting down or restarting.
	- admin can no longer KILL any PID.
	- *BSD crypt fix (completely fixed this time :)
	- fixed the fix for the signal race condition.
	- socket buffering added.
	- allow comma to be used as well as space to delimit bind and hostmask
	arguments.
	- usernames must start with a letter.
	- use kill tim instead of kill %tim.
	- new child.c command parsing.
	- source cleanup.
	- version 0.9apre1
* 18 Sep 2000
	- dwunwait reaps zombies.
	- empty password allowed in dwunmakeauth, but with warning.
	- signal race conditions fixed.
	- RECONNECT with "fatal admin" correctly allows connecting to continue.
	- prevent %unknown users who are currently attached to the dwun server
	from authentication when %all are LOCKed.
	- "fatal admin" option removed.
	- version 0.9
* 14 Jul 2000
	- '_' and '-' now allowed in usernames.
	- upgrading RPM package works. (Really this time!)
	- version 0.9pre3
* 13 Jul 2000
	- tells user if their account is locked instead of just reporting 
	"Invalid username/password".
	- ip-up scripts only ping $IPREMOTE by default.
	- version 0.9pre2
* 6 Jul 2000
	- SIGUSR2 while disconnected no longer leaves us in the #Disconnecting
	state forever.
	- empty passwords no longer allowed in dwunmakeauth.
	- can change passwords with dwunmakeauth.
	- dwungetgroup handles invalid inputs better.
	- FreeBSD crypt fixes.
	- mmap fixes.
	- Debian package uses correct doc directory.
	- version 0.9pre1
* 16 Jun 2000
	- upgrading RPM package works.
	- sending SIGTERM to child pid kills it.
	- onconnect/ondisconnect can use fd3 (messages to users).
	- version 0.8g
* 9 Jun 2000
	- ip-up scripts don't prevent rest of ip-up being executed.
	- version 0.8f
* 2 June 2000
	- rpm and deb no longer include Makefile* in doc/ and this
	documentation is installed for tarball users.
	- rpm removes doc directory when uninstalled.
	- deb postinst can run dwunmakeauth.
	- can listen on multiple IP addresses.
	- onconnect/ondisconnect logged to command logfile as per documentation.
	- hostmask previously only checked first quad.
	- multiple hostmasks allowed.
	- examples/chatscripts fixed.
	- added scripts to make using multiple ISP's easier.
	- version 0.8d
* 25 May 2000
	- debian package made more compliant and much easier to setup.
	- rpm package improved.
	- dwunconf and dwununconf removed.
	- umask when executing programs fixed.
	- fixed don't-see-prompt in makeauth.
	- fixed trying to reconnect before we're disconnected.
	- system-wide dial configuration file /etc/dialrc.
	- redials option to limit number of times dwun will redial.
	- post_commandon and pre_commandon to run commands before commandon
	starts and after it exits.
	- disconnect_wait so we can wait before disconnecting in case a client
	CONNECTs.
	- makeauth appends by default.
	- makeauth only adds meta-users when -i switch used.
	- fixed hostmask.
	- can easily send CONNECTed users lines from a file as they are added.
	- fixed socklen_t compile error on FreeBSD.
	- version 0.8c
* 17 April 2000
	- race condition where external messages could be lost fixed.
	- multiple connections switch-provider script fixed.
	- connect.sh works even if you use characters like semicolons in the
	session name.
	- connect.sh can list our connections.
	- multiple connections are easier to setup.
	- handle excessively long lines better.
	- can use existing scripts to dial and disconnect.
	- dwunconf fixed for old versions of bash.
	- ISDN can be setup with dwunconf.
	- pidfile removed on exit.
	- debian initfile fixed.
	- server umask is now 022.
	- umask is 0 for executed programs.
	- created command logfiles have u=rw
	- source cleanup.
	- relative path names in config work when we RESTART.
	- new admin command UPTIME
	- version 0.8
* 16 March 2000
	- dial doesn't mind if stdin is connected to /dev/null (e.g. run from 
	cron)
	- new doc/examples scripts
	- issuing the CONNECT command twice in one session doesn't cause 
	connection to stay up infinitely
	- version 0.7e
* 2 March 2000
	- makeauth was broken
	- sending external message to non-existant pid caused crash
	- no longer disable receiving external messages for non-critical errors
	- dial exits on messages not starting with # and not "OKAY"
	- rpm fixed
	- version 0.7d
	- ...
* 26 February 2000
	- %p option for onconnect/ondisconnect for pid of child serving user
	- external messages must start with % if username is used
	- external messages can specify a pid to send message to instead of user
	- no repeat of speed for same user connecting multiple times
	- better handling of excessively long input lines for rcfiles and 
	makeauth
	- security bugfix for systems without strdup
	- all file descriptors are closed before calling exec
	- fix for systems where max password length for getpass() is not 127
	- attempt to log error on segfault
	- don't exec if can't cleanup signals and fds
	- version 0.7c
	- ...
* 20 February 2000
	- dial running in background works (bug found by Robert Davidson)
	- dial option to run command after #Connected
	- dial exits with code 1 on #Connect failed
	- version 0.7b
	- ...
* 8 February 2000
	- license change
	- moved to sourceforge.net
	- version 0.7a
* 4 February 2000
	- fix for big endian machines (non-intel)
	- MAXPPPD_FAIL is now unlimited (MAXPPPD_FASTFAIL handles the situation
	this was originally created for).
	- external option in rcfile to allow custom messages to be sent to
	clients
	- dwun waits for onconnect command to complete when pppd isn't running,
	fixes multiple connections
	- dwun-setup script for semi-automatic configuration
	- cosmetic fix for dial when connection reset by peer
	- using multiple numbers in connection script fixed
	- meta users %con and %all for admin commands and external
	- %unknown meta-user can be LOCKED
	- when admin refers to %user, list will always be updated
	- version 0.7
	- ...
* 26 January 2000
	- count of failed pppd's resets when we disconnect
	- makeauth asks before overwriting authfile
	- compile error on linux 2.0.x fixed
	- corrected documentation on changing authfile mid-stream
	- compile errors on Solaris fixed
	- scripts/docs work for Red Hat
	- cosmetic dial exit fix
	- chatscript-expect file included
	- seemingly-invisible logging bug
	- only alphanumerics allowed for usernames (could cause security issue 
	with onconnect/ondisconnect)
	- documented use of multiple connections
* 19 January 2000
	- fixed logging into a file
	- rcfile for dial/dwun abort on lines > 1024 instead of truncating 
	command
	- now properly zeroes out pass
	- HELP info now alphabetically ordered
	- admin STATUS command to show connection status
	- don't complain if /etc/dwunrc doesn't exist
	- gives extra information after a #Connect failed
	- chatscript-multi dials numbers evenly
	- chatscript-multi allows #Reconnecting to be printed on BUSY
	- new option to write pppd command output to a file
	- documentation for setting up dial scripts seriously improved
	- when we KILL a client the socket is no longer held open
	- programs we run (like pppd) can no longer hold a client connection
	open after the server child has died
	- makeauth supports non-ASCII systems
	- default port from 8000 to 5540
	- logging to file now includes datestamp and pid
	- supplying multiple pid's to an admin command will result in error
	- default is "fatal user" which is a safer default than "fatal admin"
	- admin can no longer kill themself when specifying %admin
	- defaults work properly for systems without syslog or vsnprintf
	- RESTART re-evaluates command-line options
	- version 0.6e
* 5 January 2000
	- LOG_INFO for most logging instead of LOG_WARNING
	- can use logfile instead of syslog
	- user specified pidfile will be created if it doesn't exist
	- fixed unlikely zombie situation
	- starting gets printed
	- fixes for users without snprintf
	- fixed memory leak in admin %user commands
	- compilation fixes for Tru64 UNIX and FreeBSD 4.0
	- log KILL, LOCK, UNLOCK, ZAP attempts
	- printed pids now use long instead of int
	- won't complain about/create default files that don't exist when we're
	overriding them
	- if system doesn't have vsnprintf we use logfile instead of vsprintf
	- version 0.6d
* 24 December 1999
	- fixed timeout
	- can now set MAXPPPD_FAIL / MAXPPPD_FASTFAIL to -1 for unlimited
	- now uses fatal admin by default
	- obscure mmap bug fixed
	- uses configure script
	- supports systems that don't have strdup
	- version 0.6c
* 20 December 1999
	- updated quickstart documentation for accuracy
	- makeauth disallows : in username
	- maximum username length decreased from 64 to 16 characters
	- local.c renamed pppd.c
	- max_from_one keyword to limit max connections from one host
	- pppd fatal behaviour can now be set in rcfile
	- default max connections from 10 to unlimited
	- connect failed now shown to new clients
	- manpage for makeauth written
	- fixed -r in dial
	- mode 0400 as well as 0600 allowed in dialrc
	- fixed memory leak
	- now compiles with -W without warning
	- version 0.6b
* 14 Dec 1999
	- fixed segfault on RESTART
	- ZAP message for unconnected user fixed
	- version 0.6a
* 10 Dec 1999
	- dwun.pid includes newline
	- check for pipe_parent atomicity
	- USER_LEN now affects authentication and makeauth
	- now fatal error if pppd exits in under 5 seconds 5 times in a row
	- portability fix for non-gcc compilers
	- fixed freeze for client upon multiple CONNECTs
	- new optional behaviour for fatal pppd error
	- % allowed in commands
	- new HTML documentation
	- rcfile errors more descriptive
	- rcfile for dial
	- logs outcome of pppd disconnect
	- if -k in dial is greater than 0, the minimum used is 1
	- debian package now makes a backup of /etc/dwunauth
	- log when client does CONNECT or DISCONNECT in debug mode
	- debugging messages cleaned up
	- dial now handles receiving messages whilst doing initial commands
	- missing SIGCHLD possibly fixed
	- Hello now starts with #
	- makeauth can now add users and output to stdout
	- default timeout from 20 to 60 seconds
	- debian package asks before running makeauth
	- version 0.6
* 2 Dec 1999
	- fixed Makefile to install makeauth
	- remove dwun-latest.spec from tarball
	- dwunauth mode now 0600
	- version 0.5d
* 1 Dec 1999
	- empty password no longer allowed in makeauth
	- new manpage for dwunrc(5)
	- minor documentation updates
	- chatscript now allows showing #Redialing on BUSY
	- fixed logging for client dropped
	- fixes for FreeBSD and many other systems
	 (pppd command no longer run by sh -c command)
	- version 0.5c
* 23 Nov 1999
	- Debian package
	- makeauth half-decent now
	- RPM spec file
	- version 0.5b
* 21 Nov 1999
	- usernames starting with % are not allowed
	- dial now prints both version and help info with -h
	- wrote manpages for dial and DWUN
	- with ZAP will now LOCK before KILL to avoid race
	- ZAP now kills all clients belonging to a user whether pid or %user
	was specified (unlike KILL)
	- version 0.5a
* 14 Nov 1999
	- some error messages more informative
	- KILL %user now kills all clients belonging to that user
	- now does chdir("/") so we won't stop a directory becoming unmounted
	- version 0.5
* 6 Nov 1999
	- dial can specify no keepalives (-k 0)
	- dial can handle extra Hello info from server
	- dial now only uses alarm, not setitimer
	- dial default server now 127.0.0.1
	- dial bugfix with timeouts
	- other dial code cleanups
	- send version info to clients
	- restart no longer fails if authfile is a relative path
	- now logs timeout waiting for ALIVE from client
	- HELP notes ALIVE in all modes
	- fixed socket bug (select() )
	- version 0.4d
* 31 Oct 1999
	- socket released properly on quit
	- failure to run pppd command now does #Connect failed rather than
	shutting down daemon
	- error messages from server more sensible where arguments given to a
	command that requires none, or vice versa
	- no longer include the file '.tar.gz'; oops ;)
	- version 0.4c
* 28 Oct 1999
	- in admin, typing an argument to a command that doesn't require one
	no longer stuffs us up
	- fixed segfault of admin list sender
	- fixed pipe_recv() timeout
	- fixed pipe_recv() / pipe_send() multiple-packet bug
	  (fixes LIST problem, USER_LEN/PEER_LEN too large problem, as well as
	  platform specific problems)
	- version 0.4b
* 26 Oct 1999
	- pppd command now user-specified
	- fixed error message for -r when file doesn't exist
	- removed only-one-admin restriction
	- LIST shows correct username after close
	- temporary fix for LIST broken-ness
	- version 0.4a
* 25 Oct 1999
	- fixed memory corruption bug with LIST (admin command)
	- now uses mmap instead of sysv shared mem
	- RECONNECT (admin command) documented
	- fixed pppd_fail bug
	- fixed showlocks
	- fixed compile error on FreeBSD caused by missing header file
	- fixed change-USER_LEN-and-die bug
	- no longer complains if /etc/dwunrc doesn't exist
	- version 0.4
* 22 Oct 1999
	- default max pppd failures (before #Connect failed) increased from 30 
	to 100
	- timeout for sending admin list (more robust)
	- reset alarm to 0 for new processes (more robust)
	- fixed another zombie bug
	- fixed onconnect bug
	- version 0.3f
* 10 Oct 1999
	- added showlocks ability for admin
	- fixed bug where we failed to log peer gone when connection reset by
	peer
	- fixed "pppd failed xx times in a row" repeated bug
	- fixed shell beeping-after-exit bug
	- a blank line now counts as a comment
	- fixed zombies bug. could stop pppd from redialing requiring a restart
	- version 0.3e
* 28 Sep 1999
	- replaced message queue with pipes, works much better together with
	sockets in select()
	- made masq support more generic, now can run user-defined command for
	each peer when they connect/disconnect
	- option -m now refers to maximum allowed clients, not maximum
	authed and connected clients
	- can now read options from file (-r option to set file)
	- can now control access via hostmask like 192.168.1.0/255.255.255.0
	- wrote gtk+ client gdial. not included in normal DWUN package
	- version 0.3d
* 18 Sep 1999
	- Removed ISDN support, replaced with masq support.
	- avoid bug where pppd killed us
	- added NO_PPPD to enable use of DWUN for non-pppd activities (such as
	firewall control)
	- bumped version to 0.2c
* 17 Sep 1999
	- Experimental ISDN support
* 16 Sep 1999
        - Released 0.2b - note that when making an initial release you should
        turn debugging OFF and make sure the defaults for client and server
        match up. 
	- Made client send proper QUIT command.
	- minor reconnection fixes
* 15 Sep 1999
	Initial public release
