0.0.9	Tuesday, October 15, 1998
I added username/password authentication.  You can either use /etc/passwd and
shadow passwords or a separate authorization file in the same format (you can
create it with the included authgen utility).  The configuration file also has
a _userallow variable for anything that requires authorization.  The user must
meet the _ipallow and _userallow conditions to be allowed access.  Most of the
changes have been made in auth.c, with a few function calls spread throughout
the project.

I got some new parameter code from Shane Kerr <kerr@wizard.net>, you can use
the old hash table with make USE_HASH=1.  He also contribued some suggestions
for making the existing hash functions faster.  I am pretty glad that people
are beginning to read the code.

0.0.8	Tuesday, October 13, 1998
Some minor cleanups to get ipppd support (an ISDN pppd daemon) to get more
easily integrated into the server.  I didn't bother actually releasing this
version, or doing anything but I did decide to dump it in the downloads section.
 - Moved cinfo_write into cinfo.c
 - Added cinfo_unlink to cinfo.c
 - Moved log file parsing into parse.c
 - Parselog now takes pppd or none

0.0.7	Friday, October 10, 1998
 - If using inetd, the connnection file shouldn't have been unlinked.
 - I added an admin_ipallow variable to the config file to allow access to the
   new admin command, "HALT".
 - If you set an ipallow to 0.0.0.0 it will automatically deny access to a
   resource.
 - I added a config_getvalue_int function so there are few atoi(s), and it is
   easier to get configuration information.
 - I added a cfile_write function to write the connection information file,
   along with this I have added a Connection Pending message in place of the
   connection name.
 - The halt command will send a SIGTERM to all of the mserver processes, and
   it is trapped by each of them in mserver_halt (this function is in halt.c)
   This means that the sockets should now be shutdown correctly and you can
   start and stop your server to upgrade.  (This code isn't perfect yet).
 - The readme actually is useful now, and I moved the changelog into history.
 - I moved stat.c to getstat.c
 - I moved stat to mserver_stat in stat.c
 - I moved time to mserver_time in time.c

0.0.6	Wednesday, October 8, 1998
I would like to thank Paul E. Jones <paulej@acm.org> for providing some great
suggestions that led to this release.
 - I am now using the facility we all know and love for error reporting,
   syslog!  This is a good thing since I also added inetd and wanted a way
   to report errors in debug mode.
 - I added the ability to use inetd, this will ignore all IP checking so you
   should use ipfwadm and tcp wrappers to make sure nasty people can't access
   the server.
 - The configuration file also should now be moved to /etc/mserver.conf instead
   of the current directory.

0.0.5	Wednesday, October 8, 1998
With this release the perl server is no longer supported, if you want a server
that is actively being developed and getting bugfixes you should switch to the
C server, it is already more configurable and faster.
 - I added a skeleton argument processing algorithm in mserver.c, I should
   probably figure out how to use popt or the GNU equivalent.  This means
   you can specify the config file with -c.
 - I added IP checking, it isn't quite like that of the perl server though,
   you can chose to use a '*' or a literal IP number, you can't choose ranges.
   If someone actually needs ranges or more than 10 different IP masks then
   send me mail and I'll see what I can do.

0.0.4	Sunday, October 4, 1998
The aim of this project has shifted to making a replacement for the perl server
instead of a server in addition to it.  After some discussion with BJ Goodwin,
we have decided that C is really the way to go.  Since he doesn't really know
C he will drop out of coding the server side, but will still work on ideas and
the Tcl/Tk and Command Line clients.

This version also has much more configurability, so much that you should be
able to use it for things besides PPP.  A properly configured system should
be able to use ISDN! (If you have ISDN please tell me your results)

 - Boolean valuea are now taken care of in config.c, this makes things easier
   to configure and reduces the code size/complexity, you can also use 'yes'
   and 'no' instead of true and false.
 - There is a parselog option, you can opt to turn it off or on
 - The default mserver.conf now comes with comments so you can understand what
   I am doing, this is the first step to documentation.  I also need a basic
   guide on how to install it, and how the system works.  If anyone wants to
   help out with this I would really appreciate it.
 - Fixed a referenece to daemon instead of demon, thanks to Brian Beaulieu
   <mke0010@glythor.com>
 - Separated mserver_kill into a separate file, and also added the defkill
   configuration option so you can define a kill action for all your
   connections 
 - Separated mserver_list, mserver_kill, mserver_dial, and mserver_cinfo into
   their own files.
 - Fixed the CINFO syntax error message to say CINFO, not DIAL
 - You can use the pppdlock method or the netdev method to determine whether
   an interface is up or down.  The pppd method is better for PPP connections,
   but the netdev version is very general.

0.0.3	Tuesday, September 30, 1998
I have added parsing of the log file to the code, this makes it much more usable
I think the output returned to the client is much nicer than the perl server.
It is done with strstr instead of regular expressions because this is much
simpler than regex and is probably much cleaner anyway.

I also added an option to the Makefile, DEBUG.  If you have this environment
variable set, or pass DEBUG=1 to make then the server won't fork off into the
background even if demonis set and will use debugport instead of port in the
config file. The server will also become *very* noisy if this is enabled, this
is only recommended if you are a developer.

0.0.2	Tuesday, September 08, 1998
LIST, STAT, KILL, and most other commands work, the sole command that really
needs some is dial.  It works, but does not give any interesting output at the
moment.  This causes it to return immediately, and I would like to fix this
before unleashing the software on the world.  I would also like to investigate
locking with semaphores, but may wait on that for a while.  I need to
investigate regcomp right now.

0.0.1	Monday, September 07, 1998
I did some of the actual work, it can now tell me if the modem is connected,
but not which connection as I haven't made it dial yet.  The server  can also
list the valid connections, I am considering adding a "CINFO" command so that
you can get information about a connection.  This would help me with debugging,
and also be cool for the masqdialer v.2 protocol.

0.0.0	Sunday, September 06, 1998
Initial work on the project started, no modem manipulation commands worked yet,
but it is a good place to start.  I did the configuration, general structure
of the main routine, and also some of the pretty functions (VERSION, AUTHOR,
LICENSE, HISTORY).  My ISP was down so I couldn't do any thing that was
actually useful.  I also decided on these design goals:
 - Clean implementation
 - Smaller than perl and daemon so it would be possible to use it with LRP.
 - Smaller memory footprint than perl version so that I can have more clients
   without having them each take up 2.5M of memory.
 - Stable multithreaded operation, this is lacking in the perl server.
 - Learn something by having implemented the whole system, not just the clients
   and try and apply this to the perl version of the server.
