$Id: TODO,v 1.7 2001/09/16 09:55:19 rich Exp $

Benchmarking. Run http://www.kegel.com/dkftpbench/index.html against
the server and optimize it according to the results. I don't expect
it to perform particularly well, but there are probably some obvious
areas for improvement.

Implement upload/download hooks and a default system similar to
what glftpd can do.

Current problems with this FTP server, as identified by http://cr.yp.to/ftp/:

 * Understand \377\377 (equivalent to \377), \377\364 and \377\362
   on the control connection [http://cr.yp.to/ftp/request.html].
 * Implement ``Features:'' header in initial greeting
   [http://cr.yp.to/ftp/greeting.html].
 * Implement asynchronous ABOR, asynchronous STAT, asynchronous QUIT
   [http://cr.yp.to/ftp/pipelining.html].
 * Understand encoded \000 (equivalent to \012) in commands
   [http://cr.yp.to/ftp/filesystem.html].
 * Implement SPSV, EPRT [http://cr.yp.to/ftp/retr.html].
 * NLST should list full pathnames, and also should escape \012 in filenames
   [http://cr.yp.to/ftp/list.html - but I think djb has confused
   \000 with \012 in his description].
 * Implement EPLF [http://cr.yp.to/ftp/list/eplf.html].
 * In HELP print server version, if appropriate
   [http://cr.yp.to/ftp/syst.html]. [DONE]
 * Implement correct quoting in PWD command response
   [http://cr.yp.to/ftp/cwd.html#pwd].

Implement EPRT and EPSV (see RFC 2428).

Auto-compress files and directories on upload and download. Provide
a hook to allow the range of compression functions to be increased.
[Some of this is implemented].

Regression tests for the following fixed bugs:

* SIZE on non-readable files.
* Zero-nodes.
* SIZE /, MKD /, SIZE . and related funny things.
* MLST /
* NLST -al

Tests for the following features:

* SIGHUP - reload configuration & reopen files.
* Illegal constructs in config file.
* max clients.
* Access control rules.
* Ident (!)
* Timezones.
* max login attempts.
* chdir message file.
* alias.
* cdpath.
* allow site version command.
* allow site exec command.
* site command.
* virtual hosts (HOST command).
* command filter.
* no authentication commands.
* SITE CHECKSUM.
