2001-03-31, Shane Kerr <shane@time-travellers.org>
- Version 0.2.1 released

2000-03-23, Shane Kerr <shane@time-travellers.org>
- Fixed configure bug on Debian systems.  Special thanks to Matthew
  Danish for helping me on this one.

2000-03-21, Shane Kerr <shane@time-travellers.org>
- Added workaround for the evil glob() denial-of-service attack.  I
  chose the simple method of preventing file listing with both path
  separator and wildcards.  Either is okay, but not both.  I don't
  expect this to cause problems with legitimate use, but I could be
  wrong.  It was much simpler than my other thought.  :)

- Changed code so that ECONNABORTED and ECONNRESET errors don't increase
  the error count.  This is to prevent a malicious client from taking a
  server down by sending a large number of connection requests that it
  then aborts.

2000-03-20, Shane Kerr <shane@time-travellers.org>
- Use a random port rather than incrememting sequence; useful for
  preventing classes of data hijacking attacks.

2000-08-25, Shane Kerr <shane@time-travellers.org>
- Fixed telnet module to properly handle telnet escape sequences (since
  no clients actually use this, it wasn't really a problem)

2000-06-01, Shane Kerr <shane@time-travellers.org>
- Beau Kuiper, author of muddleftpd, sent me a fix for the Netscape
  timing bug.  Thanks!!!

2000-04-03, Shane Kerr <shane@time-travellers.org>
- Version 0.2.0 released

2000-03-30, Shane Kerr <shane@time-travellers.org>
- Changed README send to only send on directory change if you actually
  change to a different directory.  That is, "CWD ." does not send a
  README file.  The reason for this is that many clients perform a 
  "CWD /" as soon as it connects, which cause the README to be sent
  twice - yuck!
- Added missing check for closed file descriptor in write_fully().
- Converted use of FILE pointers to file descriptors.  This wasn't done
  in the most efficient possible method (i.e. with buffers), but it does
  remove the maximum FILE limitation from the server.

2000-03-29, Shane Kerr <shane@time-travellers.org>
- Added -D_REENTRANT flag to compile options.
- Added an error data type to return details about errors that occur 
  in module initialization.
- Changed telnet module to never drop characters on outbound, even if
  we have a ton of DO and WILL commands from the other end.

2000-03-27, Shane Kerr <shane@time-travellers.org>
- Fixed bug in telnet code when sending "" string.
- Now sends README to client if file is in directory on connect
  or directory change.
- Simplified watchdog a bit by adding pointer to watchdog in the
  watched structure.
- Wrapped invariant() methods with #ifndef NDEBUG so they won't
  get compiled in non-debug code (in case there's ever a 
  non-debug version)

2000-03-22, Shane Kerr <shane@time-travellers.org>
- Changed NLST and LIST to silently drop a file specification that
  starts with a '-'.  This will ignore attempts to pass an argument
  to "ls" that some clients try - it probably won't do what they 
  expect, but at least they'll get a list of files.

2000-03-19, Shane Kerr <shane@time-travellers.org>
- Set file descriptors 0, 1, and 2 to go to "/dev/null", so that
  any error messages sent by, say, the kernel don't accidentally
  go to a user.
- Changed watchdog to have a single thread to watch all connections, 
  rather than a thread per connection.  This is considerably more
  complex, but effectively doubles the number of connections that
  can be supported (due to thread limits).

2000-03-16, Shane Kerr <shane@time-travellers.org>
- Added support for REST command.  (Note that this is *not* the REST
  exactly as described by RFC.  The REST in the RFC only applies to
  block or compressed mode transfer, which oftpd does not currently
  support.  However, it appears that Unix systems interpret the 
  parameter to the REST command as the offset into the file to resume
  from.

2000-03-13, Shane Kerr <shane@time-travellers.org>
- Version 0.1.3 released

2000-03-12, Shane Kerr <shane@time-travellers.org>
- Fixed bug when connection limit reached
- Fixed bug when attempt to bind() an already bound port

2000-03-12, Shane Kerr <shane@time-travellers.org>
- Version 0.1.2 released

2000-03-11, Shane Kerr <shane@time-travellers.org>
- Move configuration values into oftpd.h
- Wrap source to 80 columns
- Fix pthread_create() error check (code had incorrectly used errno
  rather than the return of pthread_create() to determine error)
- Fix threads to run in detached mode (when appropriate)
- Solaris port completed
- Support for STOR added (reply with 553 error)
- Added free list for per-thread information structures.

