
CHANGELOG

	This file contains a summary of the changes in each release.  The
	details may sometimes be technical, and are usually vague for the sake
	of brevity.


WHAT'S NEW?

	0.4.19
	------
	Fixed a bug in game report file names so that they year is human
	readable.  Incorporated a patch from Oleg Drokin to make bnstat work
	properly when not called from a tty (for example from a cgi-bin). Added
	lots of new country codes to bnet_protocol.h.  Fixed a bug with the
	output of the /whereis command where it would say a non password
	protected game was password protected (thanks to Tril for reporting
	this).  Added support for non wildcard interface binding (suggested by
	Michael Matsumura).  Fixed a bug in bnetd.c where ladder stats were
	reported.  If a player was on the ladder list and didn't previously
	have a game time, the server used to send zero; it now sends Jan 1,
	1970 0:00 GMT.  Incorporated a patch from Denis for more ladder
	equations.  Only 5 and 7 player games are left.  Fixed previous fix
	to handle all cases (I hope) for the double free() problem in game.c.
	Separated the different protocols into separate headers.  Adopted
	Linux kernel like error cleanup for server_process() to avoid code
	duplication.  Removed excess quotations in bnchat output.  Added
	escape and control character filtering to bnchat and bnftp output.
	Moved the include files out of the source directory and into their own.
	Renamed convert.h, field_types.h, and convert.c to bn_type.[ch].
	Removed ugly starttime global variable and made it local to server.c.
	Changed the way new accounts are initialized.  They no longer copy
	the bnetd_default_user, and the lookup routines look in the default
	user if the attribute is not found in the specified account.  The
	account code now uses a temporary file to save accounts to minimize
	loss if the server crashes while saving accounts.  Implemented cdkey2
	messages and fixed changepassack.  Version 1.06 of Starcraft should
	now work.  Fixed a possible divide by zero in adbanner code.  Fixed
	new account temp file to include full path.  Fixed adbanner tag
	passing.  Fixed tracking error messages.  Fixed tracker bug where
	flags field was not initialized.  Fixed tracker bug where remote
	address was not set.  Added support for join-game stat command.  Start
	of support for Warcraft II BNE.  Fix for ladder screen not displaying.
	Fix for crash after /ladderactivate in ladder.c.  Also copy last game
	time into active ladder statistics.  Ad banners are now displayed
	again after adding missing counter increments to adbanner.c.

	0.4.18
	------
	Added missing strftime compatibility to bnftp.  Removed CHAT tags from
	bnchat, bnstat, and bnftp.  Fixed bug in game.c that could cause a
	double free of report data.  Added install rules to Makefile.in.  Made
	config file automatically get path updates from Makefile.  Made server
	use the location of the configuration directory when looking for the
	default config file.

	0.4.17
	------
	Fixed a small bug with client/server authentication.  Fixed a bug in
	the list handling in tracker.c which could cause a crash if the last
	tracking host could not have its name resolved.  Fixed the map
	authorization bug introduced in the previous version and made game join
	flags on accounts enforceable by denying map authorization.  Added a new
	/timer command for reminders in both chat and gameplay modes.  Made the
	date on report files more readable.  Fixed a bug in game_report which
	could cause normal game results to be wrong.  Forced setting of game
	starting time when maps are authenticated.  Added ladder fix up from
	Denis.  Fixed some mistakes and omissions for LADDER and AD packet
	types in bnet_protocol.h and bnetd.c.  Updated bnettime functions and
	usage to allow for using all 64 bits of the number.  Made auto update a
	configuration option.  Updated the latency testing code to use timers.
	Made use of long long dependent on definition of HAVE_LONG_LONG.
	Created a t_long_ab datatype to support "hand-crafted" 64-bit values.
	Changed names on some files to be shorter and less confusing.  Made
	file download packets have proper modification dates.

	0.4.16
	------
	Fixed a few errors in bnet_protocol.h and documented some fields in the
	compinfo packets.  Made bnchat only send CDKEY packets when emulating
	Starcraft or Brood War and to send the 1b packet when emulating Diablo
	Retail or Shareware.  Added patch for ladder games with six players
	from Denis.  Fixed another bug in game.c which where an assignment was
	missed which could cause games with several people to cause the server
	to crash during or after the game.  Fixed the map authorization code to
	always return 2 for ladder _maps_ and 1 for other maps (insted of 2 for
	ladder games and 1 for other games).

	0.4.15.3
	--------
	Fixed a bug caused by a misplaced debug message in game.c which could
	cause a crash.

	0.4.15.2
	--------
	Fixed a bug in the channel code that could cause a crash under
	certian conditions.  Updated most files to use the list_get_length()
	operation.

	0.4.15.1
	--------
	Fixed a bug introduced in 0.4.15 in the GAMELISTREPLY code.  Made
	game.c use the list.c code.

	0.4.15
	------
	Fixed memory leak in adbanner.c.  Made memory deallocation in watch.c
	immediate.  Cleaned up checks and debug eventlog()s in GAMELISTREPLY.
	Mike Hindman changed clients to default to localhost if no server is
	specified.  Added --client option to bnftp and --owner options to all
	applicable clients.

	0.4.14
	------
	Fixed a couple of bugs in watch.c which could cause crashes and memory
	leaks.  Added pfree() everywhere for more memory debugging.  Fixed
	packet.h so that the data array is exactly MAX_PACKET_LEN.  Made
	packet_append_*() return errors on overflow.  Made the game list stuff
	return as many games as could fit in the packet. Fixed a possible
	memory leak in game.c.  Cleaned up error handling when adding a user to
	a game and memory allocation fails.  Added a new config file for ad
	banners so multiple banners are now supported and the SMK format is
	properly supported.  Fixed a file leak in the channel configuration
	parser.  Made clienttag arguments to / commands case-insensitive.
	Added new /watchall and /unwatchall commands.

	0.4.13
	------
	Added checks for server closing connection in bnchat.c and bnstat.c.
	Made bnstat.c support printing only standard data or also BNETD
	and/or FSGS specific attributes.  Made packet_set_type() and
	packet_get_type() check to make sure the header is available.  Made raw
	packets receive as much data as possible on each read and also check
	for overflows.  Made listen socket in the server non-blocking to avoid
	possible race condition with aborted connections (it would have made
	RST DOS attacks possible).  Removed exception fd_set's from select
	statements as we never used them anyway.  Added account attributes to
	disallow creation and joining of normal/ladder games.  Created a
	README.adbanner file.  Made server.c munge bot packets before sending
	them to handle_packet() so that packet_get_line...() can be removed.
	Added socket to many eventlogs() in handle_packet().  Figured out a
	little info on the 1B packet.  Cleaned up and added some more example
	packets in bnet_protocol.h.  Started implementation of bnproxy.
	Removed port.h and made everything use the defines in setup.h instead.
	Finished watch/unwatch implementation.  Fixed some backwards bn_int's
	in CLIENT_COUNTRYINFO.  Added Diablo support.  Made bnchat and server
	reject new accounts with spaces in the name.  Fixed bug with Diablo
	support where game host left people could not rejoin the game.

	0.4.12
	------
	Fixed small error in packet.c that caused file packet type strings to
	always be "unknown".  Added replacement routines for strerror() and
	strtoul() for machines that don't have them.  Added more checks for
	header files, etc.  Cleaned up some error messages.  Added checks for
	failed packet allocation in bnchat.c.  Wrote a simple utility to get
	player info from the command line.  Made bnchat.c use proper packet
	string reading routines.  Added replacement routine for strftime().
	Made bnchat.c use select() to speed it up and use less CPU time
	polling.  Added check and ifdefs for malloc.h.  Modified bnbot.c to
	use select() like in bnchat.c.  Updated the README.ladder slightly.

	0.4.11
	------
	Integrated the autoconf patch from Rob.  Great work Rob!  Fixed a typo
	in the ladder calculations for four players.  Made bnchat print out the
	Terms Of Service when creating a new account.

	0.4.10
	------
	Fixed probability output format in ladder game reports.  Made map
	authorization always return 2 even for non-ladder games on old clients.
	Added the /ladderinfo command.  Finished bnbot.c (it needs a wrapper
	script to handle commands/responses).  Made some of the command replies
	closer to the actual messages on Battle.net.  Fixed some GAME_STATUS
	values so that 1.04 and 1.05 (BroodWars) clients will report when games
	are full and when the game is over.  Changed game.c reports to avoid
	giving everyone disconnects when someone leaves the game before it
	starts.  Cleaned up some of the ladder implementation.  Added version
	and help options to bnftp and bnbot.  Added missing include to fix
	compile problems on FreeBSD in command.c
	
	0.4.9
	-----
	Incorporated the new tracking patch from Mark.  Changed handling of
	game results to allow for ladder implementation.  Wrote support
	routines for adjusting rating values.  Added packet descriptions to
	packet dump.  Fixed the reversed DRTL tag in bnetd_default_user.  Fixed
	result handling for GAME_REPORT to check for corrupted packets.
	Updated bnclient to emulate different clients (based on patch from
	Rob).  Implemented a simple file transfer program bnftp.  Moved common
	routines from bnftp.c and bnchat.c to client.c.  Renamed bnclient to
	bnchat.  Updated bnchat to allow password changes.  Calibrated the lag
	bars so they should be the same as Battle.net.  Added the /gameinfo
	command.  Added port and ANSI color command line options to bnclient.
	Fixed a bug in the way shifts were performed in bnethash.c.  Added
	-v/--version option to bnetd.  Added patches from the debian package.
	Incorporated large patch from Rob for ladder support for 2-4 players!
	Included were several cleanups including removing the "connection
	reset by peer" and 'no entry "" for user <foo>' messages which tended
	to become annoying.  It also added game reports.  Modified the
	account.c code to use the list ADT.  Fixed game status bugs by ignoring
	9th bit in status field.  Added support for user searching in ladder
	screen.  Added the /ladderactivate command to update the ladder stats.

	0.4.8
	-----
	Fixed the error messages for /unban (thanks to Shin).  Made channel,
	game, and settings strings dynamic.  Fixed the function names in some
	error strings in packet.c.  Added setup.h for global #defines, etc.
	Added patch from Rob that fixes Diablo game support.  Fixed a bug in
	account.c which could cause the server to crash when lots of eight-bit
	characters were used in profile entries when the account was saved.
	Added simple hack to support using the server behind an address-
	translating firewall.  Added the /kill command.  Added a configuration
	option to turn off bnetd-specific /-commands.  Added account flags to
	optionally disallow normal logins, password changes, and profile
	changes.  Put address info in the output of the /games command and made
	it take an argument to choose the types of games to list.

	0.4.7
	-----
	Reworked account authorization flags and made wrapper functions.  Now
	specific users can be marked as admins and will be able to use admin
	commands even when they are not operators.  Also, the channel.list file
	has two new fields: the first determines if bots are allowed in the
	channel, the second determines if the channel will have operators.  The
	operator setting can be overridden by a specific entry in a user's
	account file for that channel.  A CREDITS file was added.  Also, the
	restriction which did not allow users to enter channels with a
	different clienttag has been removed.  A small bug with stars and
	numbers on the user icons was fixed.  A customized icons.bni file is
	now included with the distribution.  Removed some annoying eventlog
	statements which filled the logs when bots were used and debug was
	turned on.

	0.4.6
	-----
	Added a couple of new preference settings.  Fixed channel icons (again)
	so they show up for the correct people.  Reformatted this file.
	Incorporated a big patch from Rob that:
	- Changed the way games are handled in order to accommodate ladder
	  games.  We really didn't count the number of users in a game before
	  in the game structure as far as I can tell (just the 1st user).  Now
	  we do, I added some extra debugging in case anyone runs into
	  problems.
	- Ladder games are playable now and the stats should go into the right
	  place.  Of course no ranking is done and no rating is stored.  And
	  the ladder button still will show just junk and search will still
	  lock up the client.
	- User icons should show all the time now (when icons.bni is present).
	- If you have multiple users set in your registry that don't exist on
	  the bnetd server you're logging into most of the "entry not found"
	  messages won't appear in the log anymore.
	- /games now shows the number of users in a game.
	- some eventlog entries were modified to print the connection number.

	0.4.5.1
	-------
	Removed extra channel_create() commands from main.c.  Fixed string
	length checks in game.c to use proper sizes.  Made channel.list parse
	check for duplicate channels.  Added a config file setting to turn
	on/off the new channel creation verification.

	0.4.5
	-----
	Cleaned up the byte swapping routines in convert.c.  Changed prefs.c to
	allow quotes around strings values in bnetd.conf.  Added support for
	\n only lines in bot support.  Made bot code ignore blank lines.
	Changed the bnmotd to only use %I by default.  Fixed problem with
	stderr not being constant on newer RedHat and Debian systems.  Added
	account, channel, and game string sanity checks.
	Integrated patch from Rob:
	- when you create a new channel you are prompted to create it
	- user-created channels don't show up in the displayed channel list 
	  The only exception is when the total # of channels is reported
	  otherwise it is just those you have immediate access to
	- games with passwords or games of a different client type don't show
	  on the game list (but are counted in total # of games)
	- There are default "permanent" channels that have no operator.

	0.4.4
	-----
	Fixed \r and/or \n handling because different bots seem to handle them
	differently.  Rewrote the message handling code to put all the
	formatting decisions in message.c. Put channel message handling in
	channel.c instead of connection.c, and changing the order to resemble
	Battle.net more closely.
	Incorporated patch from Rob:
	- Move file-formatted-message code into message.c
	- Add the /news command (thanks to 187 for this suggestion)
	- Fix STATSREPLY for self in chat mode
	- Added man pages

	0.4.3
	-----
	Fixed the /help command entry for logout.  Added /quit as a /logout
	alias.  Fixed the account login hashing.  Added bot events and the
	MF_PLUG flag.  Changed misleading accountlist_save message.  Fixed
	tracking startup messages to avoid printing the whole list every time.
	Added the cute "No one hears you." messages.

	0.4.2.1
	-------
	Changed main.c to use setpgid() instead of setpgrp() because it is more
	portable.  Added errno.h to tracker.c.  Put an ifdef around the new
	eventlog prototype so it is only used with gcc.

	0.4.2
	-----
	Better bot support.  More strict handling of the strings in the STATS
	packet handling parts of bnetd.c to fix possible crash (untested).
	Finally included proper daemonizing code in main.c.  Added debugging
	command /connections to look into more "lingering user" problems.
	Tracking now supports multiple servers.  Restarts on SIGHUP now reread
	the tracking server addresses.  Fixed /announce to do what it says, and
	added an account attribute to allow administrators to turn it on/off
	for certain (ab)users.  Fixed a bug in the list code.  Added GCC format
	specifier for the eventlog() function to catch some more errors.  Also
	converted connection.c to use list.c instead of an array.  From Oleg:
	- The client now avoids printing the same data over and over.
	- Added DEL and ^W handling into client "readline" code.
	- Entry line in client now scrolls at 80 columns.

	0.4.1.1
	-------
	Separated all the combined NULL checks into separate ones with separate
	messages.  Added checks for failed packet allocation.  Added temporary
	debug statements in packet_append_string().

	0.4.1
	-----
	Added namehash and uid fields to account structure to avoid loading
	accounts when doing searches.  Accounts are unloaded after checking for
	duplicate logins at startup.  Fixed a few include file problems.  Split
	the TODO list into a separate file.  Added a %E formatter in the motd
	to allow MT_ERROR output lines.

	0.4
	---
	Incremented the version number for stable release.

	0.3.ross32
	----------
	Added extra UDPTEST packet send in server.c.  Made double-login
	handling configurable (deny-new or kick-old).  Fixed mis-count of users
	logged in by adding a connlist_login_get_length() function as well as
	adding a %a attribute in the motd file to show the total number of
	accounts.

	0.3.ross31
	----------
	Changed default location and description for tracking server to the
	empty string.  Added a shorter timeout to UDPTEST packet waiting in
	bnclient.c.  Added the /channels command to display current channels
	and number of users in each.  Fixed a memory leak in server.c that
	caused packets sent from clients to never be freed.

	0.3.ross30.1
	------------
	Put the tracking server port back to 6113. Added logfile output for the
	tracking server and port.

	0.3.ross30
	----------
	Changed prefs.c to use eventlog.  Also added eventlog statements to
	eventlog.c.  Fixed a bug where the /finger command could cause a server
	crash if the account did not have a last login host field.

	0.3.ross29
	----------
	Fixed a bug where connection lookups would always fail except for the
	current user.  Now /ban will work with the #000000 form of account id
	as well as account names.

	0.3.ross28
	----------
	Fixed a bug in the /finger command that causes it to send an empty
	message.  Added the body of the SIGHUP handling.  Made a few more
	things configurable (latency interval, shutdown delay, allowing
	creation of new accounts).  Added a default tracking server.  Fixed
	a serious bug in the octal constant handling in account.c.  Added
	checking of the allowoperator flag on user accounts so admins can turn
	on/off operator privileges for specific users and channels.  Fixed a
	bug in account.c where accounts were saved to disk too early (the
	account might not be added into the list).

	0.3.ross27
	----------
	Added sanity checks in bnetd.c for packet sizes and string handling.
	Should fix crashes from packets with bad data.  (See README for the two
	packet handlers that were not updated).  Put Makefile options back the
	way they were.  Added account saving.  If I did it right, it should act
	like a cache.  For every sync period, if an account is accessed, its
	"age" is cut in half, otherwise incremented.  If the age is over a
	specified maximum, it is removed from memory.  If an account is
	accessed when not in memory, it is automatically reloaded.  This is a
	big change since we were hoping to go to 0.4 soon, so please test it!

	0.3.ross26
	----------
	Added patch from Mark to enable tracking of server statistics.  Put in
	workaround for Linux feature about reporting UDP errors into server.c,
	this was uncovered by the tracking patch (if it failed to contact the
	server, it would screw up the next connection).

	0.3.ross25
	----------
	Added error checking to the hashing functions to avoid some crashes.
	(Specifically, the server could core dump if hash_set_str was called
	with a string <20 chars.)  Added sanity check to account_get_numattr.
	Added /uptime command.  Added patch from Rob to enable saving of single
	user accounts, and a check to save the accounts periodically.  Also
	added an account dirty flag, and more reliable signal handling.
	Created man/ src/ bin/ and sbin/ directories to clean up some of the
	clutter that was building up in this directory.  Changed session key
	verification to only print a warning instead of disallowing logins.

	0.3.ross24
	----------
	Removed bad check for channel in CLIENT_MESSAGE.  Added randomized
	session keys.  Fixed an error in bnethash.c that caused problems with
	some compilers.

	0.3.ross23
	----------
	From Rob's patch:
	- Fixed some of the / commands to not core dump when used outside of a
	  channel.
	- Added channel_type function to determine what type of message to send
	  as a response to a channel command.
	- Changed the /stats command so that it is invoked on the caller if no
	  argument is given.
	Made the welcome banner never send a blank line, but instead a line
	with a single space to avoid crashing clients.  Fixed a bug introduced
	to the client with the -n switch so that it does not crash when invoked
	with no arguments.

	0.3.ross23
	----------
	Added per instruction help system thanks to Gediminas.  Changed client
	not to print commands as chat text.  Added a /logout command for use
	by the text client.  Added the CHANGEPASSACK packet to report on the
	result of a password change (untested).  The CHANGELOG was split from
	the README because it is so long and not necessarily of interest to
	everybody :)

	0.3.ross21
	----------
	Fixed the hashing algorithm to not be endian dependent (the data is
	treated like it is little-endian), removed the binattr in preference
	of writing 2 conversion routines: hash to string and string to hash.
	The string is in big-endian order.  Also made the bnet_protocol.h use
	bn_ints for the hashes where appropriate.  Additionally, added a -n
	option to the client to create a new account.  Added real hostname
	resolution in the motd file, and moved the JOIN, PART, and ADD message
	code from various places to connection.c.

	0.3.ross20
	----------
	From Rob's 19a patch:
	Automatic software update feature now works.  You need a special mpq
	file to enable this.  As with all MPQ files, it needs to have the
	header included with the file itself, bnetd won't send it.  With the
	v1.05 Starcraft update, Blizzard modified the protocol slightly.  This
	version handles these changes as well as the old protocol.
	Also included:
	Passwords work!  I am very happy about this.  To support it there is
	a new attribute type in account files for binary data.  A very big
	thank you to Descolada who gave us the hashing algorithm.

	0.3.ross19
	----------
	Made the port numbers a config file option.  Fixed a stupid bug where
	the reference count for games was not being initialized.  This is
	probably the reason they were not always deleted.  Also changed the
	motd not to give certain clients indigestion (the %W on a line by
	itself).  The last two fixes were from reports from Rob.

	0.3.ross18
	----------
	Integrated patches from Rob:
	- Some detection and handling of the client version
	Also made the account_wrap functions independent of the client tag
	that is being used.  This simplifies adding support for new client
	types.  Added the Diablo Retail version tag so we no longer warn
	about it.  Also fixed the ad banner so that it had a colormap that
	matched what the client expected.

	0.3.ross17
	----------
	Patches from Rob:
	- Some re-arranging of the client-server negotiation code to allow for
	  auto-updates to be supported in the future.
	- Fix wrong member size for SERVER_AUTHREPLY. 
	- Add special case for the .mpq file because it already has a file
	  header on it.
	I also did some updating of the client code.  It is an ugly hack, but
	it (mostly) works.  I need to figure out a way to format the messages
	to look more like the Starcraft client shows them.  The account.c file
	was split into wrapper functions and the real code.  The accessor
	functions were updated, and bnetd.c now records more info from the
	client.

	0.3.ross16.1
	----------
	Fixed stupid bug in channel.c where no operator was selected for new
	channels.

	0.3.ross16
	----------
	Added more bot-handling code.  Reading raw packets works now.  Allowed
	the motd file be able to specify the message type, and changed the file
	so it looks more like the real one.  Added MF_OP to message flags to
	mark the channel operator.  Added patches from Rob:
	- Icon display now works, stars represent number of wins!
	- Config file is now available.  Use kill -HUP to cause a re-read.

	0.3.ross15
	----------
	Added type casts to avoid compiler warnings.

	0.3.ross14
	----------
	Removed limits on account filename and max line lengths.  Added motd
	file support.  Patches from Rob's 0.3.ross13a:
	- STATSUPDATE doesn't send the name of the player so you have to
	  assume you are updating the profile of the current player.
	- Banner download now works and displays properly
	- Added Ad Request Acknowledgment logging
	- Added Ad Click handling (print-out only right now)

	0.3.ross13
	----------
	Added missing message.h to channel.c.  Fixed bad eventlog levels for
	connects and disconnects.  Fixed a couple of bugs in packet.c with the
	new raw packet type.  Fixed a bug in server.c with the new raw packet
	type.  Fixed the ^M chars in the tos.txt file to actually be control
	characters.

	0.3.ross12
	----------
	Incorporated patches from Rob.  This includes a new eventlog setup, a
	missing initialization in the channel code, bnet time conversion code,
	SEXP/PXES fix in the account code, a working version of the file
	download stuff (now the Terms Of Service shows up correctly), fixed an
	off by one error in the CLIENT_STARTGAME1 handling, new users now
	default to UNRANKED and "Never Played", and the welcome banner.  Also
	fixed a bug with empty account value fields.  Now the default account
	is in a separate directory called "conf" which will hold the config
	file in the future.  Fixed a bug where port numbers could show as
	negative in the log file.

	0.3.ross11
	----------
	The channel code now notifies users when they become operators.
 	Operators can not designate themselves as next in line.  Improved the
	/games command.

	0.3.ross10
	----------
	Added channel operator commands and fixed game starting.  This was only
	tested with the 1.04 versions of the StarCraft and Brood Wars clients.
	I also created a new generic list file instead of redoing it every time
	the program needs a linked list.

	0.3.ross9
	---------
	Fixed some return statements in account.c that were stupid and made the
	HP/UX compiler mad.  Fixed a couple of off-by-one errors in game
	password and info handling.  Fixed some mixed-up uses of game_type
	versus protocol macros in game.c.  Brood Wars clients (and probably
	Starcraft ones) are still having problems connecting to games, and I
	guess it has been a problem for a while.

	0.3.ross8
	---------
	Saves users under UID now instead of username.  Added string escaping
	for things like " \n \t and stuff in the account files.  Removed -ansi
	command line option from the compiler to fix problems RedHat compiles.
	Renamed socket and acct variables to avoid warnings.

	0.3.ross7
	---------
	Added channel latency calculations and reporting.  The server also
	stops accepting connections when it is shutting down.  Game stats now
	put things in the proper SEXP/STAR categories.

	0.3.ross6
	---------
	Added STATSUPDATE for changeable user descriptions, etc.  Fixed stupid
	bug in the byte swapping routines.  Made a simple client for quick
	testing (it does not even show channel text yet).  Fixed header stuff
	for compilation under Solaris (2.6).  Remember to NULL out channel and
	game fields of the connection structure.  Added ignore commands and
	/help command (untested, likely broken).

	0.3.ross5
	---------
	Added "accounts" and some basic stat tracking.  Added many packet
	types, though few are used in a useful manner.  A rewrite of most of
	the server, especially the packet queue and data encoding routines.
	Added support for new versions of the game including Brood Wars.  Fixed
	bugs like allowing multiple logins and locking up the client when
	ladder stats were requested.  The server can also be shutdown "nicely"
	now.

	0.3
	---
	Game play finally works!

	0.2
	---
	This is a complete rewrite.  There is very little code in common with
	version 0.1.  Unlike version 0.1, this version does not spawn
	processes, so it should be more efficient.  All connections are handled
	in one process.  In addition to the functionality of 0.1, this version
	supports chatting and a limited channel system.  (Users can change to
	different channels and create new channels.)  No slash commands (e.g.
	/whois) are implemented yet.

