December 29, 1997 - Version 1.0.0

- MDTM no longer reports certain files as non-existant.

- NOOP command now correctly implemented.

- Minor cleanups/porting aids.

- Several potential stack overrun bugs fixed.

- Numerous fixes that could affect <Limit> blocks depending on your
  usage of symlinks.  All <Limit> checking is now done on *absolute*
  directories, after symlinks have been recursed.
  Status: Complete

November 18, 1997 - Version 0.99.0pl11

- Fixed bug which could cause proftpd to catch SIGSEGV if a
  'UserAlias' directive was the last non-BLOCK directive in a 
  particular context.

- fsync() is no longer called in src/log.c, typo fixed in
  src/support.c

- setsid() is now used instead of ioctl() in src/main.c, should
  be more portable.

- Numerous fixes in directive tree management, as well as some
  optimization.  If it weren't for this change, pl11 would be
  1.0.0, but I'm not totally convinced that something didn't slip
  through in all the changes.  Please let me know if proftpd
  behaves oddly in relation to configuration, or if directives
  don't behave in a documented fashion.

November 11, 1997 - Version 0.99.0pl10

- MD5 hashed password authentication will now work if your libc
  supports transparent use of md5_crypt() from the crypt() function.
  Only libc6 is guaranteed to do this, some libc5s do (under Linux).
  MD5 support has NOT been natively added, your libc MUST provide it.

- Fixed bug involving certain directives not being found if at least
  one <Directory> context didn't exist for a server/anon configuration.
  Notably, AllowOverwrite will now work if placed in a <VirtualHost>
  context without being inside of a specific <Directory> block.

- Fixed memory hole/bug in inet_copy_connection(), which may have
  been responsible for data loss/corruption/odd behavior.

- Added "magic cookie" replacement strings for DisplayLogin &
  DisplayFirstChdir files.  These are as follows:

    %T		Current Time
    %F		Available space on file system
    %C		Current working directory
    %R		Remote host name
    %L		Local host name
    %u		Remote username as reported by the ident protocol
    %U		Local username used at login
    %M		Maximum number of connections in this context
    %N		Current number of connections in this context
    %E		Server admin's email address (as specifed by the
		ServerAdmin directive)

- Added ServerAdmin directive to specify an e-mail address for the
  ftp administrator.  Defaults to 'root@hostname' if not specified.

- Added support for ident protocol lookups, used for "magic cookies"
  in DisplayLogin/DisplayFirstChdir.

October 29, 1997 - Version 0.99.0pl9

- Added man pages for ftpwho(1) and ftpcount(1).

- Added X* versions of all the three letter commands.  Some FTP clients
  (Win95's default, for example) use these instead of the three letter
  (RFC) versions.

- Passwords can now contain spaces.

- Added the SIZE command (not sure how it got left out), so that FTP
  clients which rely upon it to estimate transfer time (ie. ncftp)
  now work properly.

- Cosmetic fix.  Anon FTP connections now display "send e-mail address
  as password" rather than the "password required" message.

- IPs that do not map to names are now displayed properly when no
  configuration is defined for the address (no VirtualHost).

- Added an ftpshut utility (plus man pages) for admins.  Installed in
  /usr/sbin by default.

October 12, 1997 - Version 0.99.0pl8

- ** CODE FREEZE **  No new features will be added to this development
  tree.  pl8 will be released shortly for testing.  If all goes well
  for this (or future pls if needed), this will become 1.0.0.  Then,
  a new tree will be started for 1.1.x, for all the new and lusted after
  featurage. =P

- Added a simple man page, which is installed (by default) as
  /usr/man/man8/proftpd.8.

- Added the non-RFC (but defacto standard) MDTM command, used by some
  clients to determine the modification time of a file (debian's
  dpkg, for example).

- Bug fix in the PORT command, didn't allow arguments greater than
  254 to be passed, which means that any two-byte port which consists
  of '255' caused "Illegal PORT command."

- If a dotted quad IP is used in a <VirtualHost> block, proftpd refuses
  to allow connections (FQDN must be used).  Fixed -- Numeric IPs
  will now work correctly.

- Bug which caused proftpd to crash when transfering large amounts of
  ASCII mode data (notably, gigantic directory listings) fixed.

- Added --enable-shadow and --enable-autoshadow arguments to the
  configure script.  These are for use by binary distributors, to
  force certain code options to be compiled in.  For more information,
  see the TODO file.

September 23, 1997 - Version 0.99.0pl7

- Added 'DefaultRoot' directive which allows all users or certain
  groups to be chroot() jailed at login (into either their home
  directory, or a specified directory).  See the directive reference
  documentation (http://www.proftpd.org/reference.html) for more
  info.

- Fixed nasty bug in I/O, where a "infinite loop" was possible if
  a client dropped the control connection at just the right moment.
  This bug fix is the main impetus behind releasing 0.99.0pl7 ASAP.
  Hopefully all such "stuck loop" problems are fixed now.

- Directory interpolation (i.e. ~username) is now done during normal
  run time, instead of at config file parse time.  This will prevent
  problems with user's home directories changing and proftpd needing
  to be restarted.  Note: This still needs some rework in the next
  version.

- Fixed bug in code dealing with symlinks.  Symlinks will no longer
  cause proftpd to "hang" in a loop eating all CPU.  Note: Maximum
  symbolic link depth is 32.

- Complete refit of utmp/wtmp code.  Utilities such as 'last'
  should now work correctly -- no more missing host field, odd tty
  names and permanent ("still logged on") logins.

- Clients which estimate download transfer time will now work
  correctly.

- autoconf/configure should now produce configure/header files that
  will allow ProFTPD to compile _relatively_ cleanly under Irix 5.3,
  BSDI 2.1 and Solaris 2.5.  Solaris does report some non-harmful
  warnings due to broken sun header files.

July 8, 1997 - Version 0.99.0pl6

- Numerous code cleanups so compilation *should* look clean with
  -Wall.

- Added 'DefaultServer' directive to allow configuration of a particular
  server (virtual or root) which handles all incoming "unknown"
  destination addresses.  See documentation for more info.

- Fixed a *massive* parsing bug which caused any operations on filenames
  or directories with whitespace in them to fail.

- Fixed bug which caused SIGSEGV when trying to login to anonymous
  server with unknown username.

- Added more code for portability, namely fnmatch() and strsep().
  Irix 5.3 and BSDI ports close but not done, Irix is *almost* there.
  (thanks go to Chris Brown <chrisb@siggy.iceonline.com> for all his
  efforts)

- Debug level 4 now logs all commands to syslog (instead of level 2).
  PASS commands are intentionally hidden.

June 26, 1997 - Version 0.99.0pl6-private

- Added a support library which will include all code that might
  be missing from a particular platform's libc.  Currently includes
  getopt() and getopt_long().  This is to aid portability issues.

- Added 'SocketBindTight' directive to configure how listening sockets
  are bound when proftpd is in standalone mode.  See reference.html
  for more info.

- Fixed problem with CWD/PWD and symlinks.  Navigating through symbolic
  links to directories should now work properly.

- Added 'ShowSymlinks' directive to control how links are displayed
  in directory listings.  See reference.html for more info.

- Allow/Deny/Order directives inside <Limit> contexts now work fully
  and properly.

- A couple GNU autoconf tweaks to aid in porting efforts.

June 10, 1997 - Version 0.99.0pl5

- Major fixes to ftpcount/ftpwho and proftpd's run-time logging.
  ftpcount/ftpwho *should* now accurate report all user's currently
  logged in and proftpd will no longer duplicate entries.

- ASCII xfer from client to server caused occasional corruption.  Fixed.

- Timeouts not working in certain cases due to a race condition.  Fixed.

- ws_ftp95 (some version) had a problem w/ proftpd due to both sides
  of a data connection not being closed.  Fixed.

- Multiple anonymous logins not working properly due to a slight
  recursion bug.  Fixed.

- Idented sample configuration files for easier readability.

- Added AccessGrantMsg, UserPassword and GroupPassword directives.
  See documentation for usage.

June 4, 1997 - Version 0.99.0pl4

- PASV mode transfers fixed.  Netscape and possibly other web browsers
  use PASV mode.

- Top level configuration directives checked as part of normal
  FTP command authorization weren't working unless a <Directory>
  context existed which matched (at some level) the command.
  Example of broken configuration which is now fixed:

  Port 21
  ...
  AllowOverwrite on
  ...
  # No <Directory /*> exists, so AllowOverwrite would not apply

- <Directory /> wasn't being used at all, however <Directory /*>
  worked.  Fixed.

- /var/log/xferlog "wu-ftpd" style logging wasn't recording full
  pathnames of files transfered.

- Various problems with restarted transfers (via REST) either not
  restarting or causing later transfers to not function.  Fixed.

- <VirtualHost> caused "Bad file number".  Fixed.

- Added 'make install' to install proftpd, ftpcount and ftpwho
  (simply a symlink to ftpcount).

**********************************************************************

June 1, 1997 - Version 0.99.0pl3

- First publically available beta.  Submitted into Debian 2.0
  linux distribution w/ some intermediate fixes that will end up
  in 0.99.0pl4
