------------------------------------------------------------------------------
1.0.0 beta - 1.0.0
4/14/2002

Initial release of IndiFTPD
------------------------------------------------------------------------------
1.0.1 beta - 1.0.1
4/30/2002

Added to SOCKET CSock::BindServer():
	//allows the port to be binded to again without a delay
setsockopt(sd,SOL_SOCKET,SO_REUSEADDR,(char *)&one,sizeof(one));

Added to int CSock::ListenServer():
Added a new parameter "backlog = 0" to specify the listen() backlog

The addition of the SO_REUSEADDR was essential in UNIX.  Without this the
PASV command could not be called rapidly.  The port that was binded to
in the PASV command could not be bound to again within a min or so.
------------------------------------------------------------------------------
1.0.2 beta - 1.0.2
5/12/2002

Changed the Blowfish class to BlowfishCrypt to make Big Endian and Little
Endian passwords the same.

NOTE: This version of Blowfish is not compatible with the previous version.
------------------------------------------------------------------------------
1.0.3 beta - 1.0.3
7/21/2002

Fixed a bug when a connection is closed while a file is being transferred.
This was causing the server to crash if the transfer thread was not able
to exit before the control thread.
------------------------------------------------------------------------------
1.0.4 beta - 1.0.4
9/22/2002

Added the APPE and STOU commands.  Also added responses for the unimplemented
commands ACCT and ALLO.
------------------------------------------------------------------------------
1.0.5 beta - 1.0.5
10/7/2002

Added code to set the control connection to receive urgent data (for ABOR).

Limited a connection to only allow 1 transfer per control connection.

Changed IndiFileUtils to IndiSiteFile.

Changed the USER command to always ask for a password.  All the checking is
done in the PASS command.

Added a member var m_linebuffer to CFtps to build all the response lines.

Added support for specifying the server's IP address (for Firewalls)

Added a thread safe version of localtime() -- CSiteInfo::GetTimeString()
does not use a mutex any more.

Added a %t logging option for the access log to log the text response sent by
the server.

Added some code to make sure failed transfers return 0 bytes transferred.

Added a parameter to ftpsXferInfo_t to set the modification time of the 
transferred file.

Added a timeout parameter to Sock::OpenClient().

Restricted the user from deleting the root directory.

Added the 't' permission flag to allow the SITE command

Fixed case sensitive usernames in CIndiSiteInfo

Changed program and access log file names to contain date fields
(def prog log name = ftpd.log, def access log name = %d%m%Y_access.log)

Changed logfile to keep an open file descriptor.  The file buffer is flushed
every 5 sec (flush is only done during a write to the logfile)

Added support for XMKD, XRMD, XPWD, XCUP, and XCWD

Added response for REIN and TYPE L 8

changed _connect() to use CFtps::EventHandler() instead of 
CTermsrv::ResponseSend().

Added support for FEAT, MDTM, and SIZE

Added response to OPTS (not implemented)

Added explicit and implicit SSL.  Explicit SSL includes AUTH, PBSZ, and PROT
commands.

Changed the data connection to close before sending the final response (this
is described in the FTP TLS draft).

Added checking in the main thread to make sure all the client connection
threads have exited before the the site info class is free().

Added a delay before responding to failed login attempts.

------------------------------------------------------------------------------
1.0.6 beta - 1.0.6

Added the -b<IP> option to bind to a specific IP address

------------------------------------------------------------------------------
1.0.7 beta - 1.0.7

Updated OpenSSL library to openssl-0.9.6k

------------------------------------------------------------------------------
1.0.8 beta - 1.0.8

Reorganized the code base (created "core" and "indiftpd" dirs)

Updated OpenSSL library to openssl-0.9.6l

------------------------------------------------------------------------------
1.0.9 beta - 1.0.9

- Fixed address binding problem when using PASV mode -- changed to bind to
  any/all IPs.

------------------------------------------------------------------------------
