FSP SUITE TO DO LIST BY RADIM KOLAR 
/* maintained by hsn -at- netmag * cz */

Radim Kolar's personal wishlist from 1997
*-high priority-*
 - show loosers online (finfo command) and server statz
* l o w *
 - password change command

TESTSUITE NEEDED:
Write a simple FSP protocol testing tool
Write a test suite using testing tool
test for remote buffer overflows
Test if >2GB files but <4GB works correctly with and without --disable-largefile

SECURITY BUGS:
symlink to FILE can escape from FSP root directory. OLD known problem.
symlink support must be reworked before final release.

PROTOCOL-RELATED BUGS:
none

PORTING
Sven's Slowaris 8 compile problem
Sven's AIX compile problem
not builds on freebsd 4 and FreeBSD 5 - non intel platforms?

NEEDS IMPROVMENT:

Client LIBRARY
:high:
we should retune retry algoritm for better support lines with higher
  packed loss. On common internet lines current one works okay.
add more detailed stats from retry alg.  
:low:
fver and others add support new syntax fsp://host:port/file
add sem locking method, possible?
flscmd should not to do stat before directory listing.
directory listing should not need to get 0 sized block. Needs total code
   rewrite. 
better support for persistent keys - do not send cc_bye ? this should
 be probably configurable

:long-term goals:
:better to write a new code instead of fixing 10 yo crap.
=convert to multi threaded=
make setup from env a separate function
do not use global variables

CLIENTS 
:high: 
normalize return error codes of all clients
write new clients for new commands - fpasswd finfo
:low:
add support for more sane fsplist file format (as used by warez
ppl) to fhostcmd
it looks like
#FSP Sites list
genie.lut.ac.uk        21   genie    / # small UK site

clients do not freeing memory allocated from glob()

FUTURE FEATURES FOR SERVER:
:high: required for 2.8.2 final
can be run multiple times on the same port, how to check? 
  drop reuse flag from socket bind?
  Currently looks fine with flag on bsd. Fails on lin-suck.

report number of clients connected, size of hostable in new command
 CC_INFO command
special defence against rapid/double fire clients (burst command in fspclient)
Native Supports for symbolic links (needed for mirroring Debian)
new LSTAT COMMAND
write FSP_CHANGE_PASSWORD command

:midle:may not be in 2.8.2
improve RENAME FSP command
  * cross directory renames are unsuported for now
  * server can send error reply even to denied per directory clients
     - minor security flaw

:low:this will sure go after 2.8.2:
hashed passwords. Do we really needs them?
add switch for directory vs global ACL overide
hard code acl into server configuration, do not use .FSP_ filez.
support for user directory namespace ~hsn / public_html, check links to outside!
use ntons a podobne funkce v iprange.c
ipv6 socket support
privileged Hosts, excluded from Byte transfer Limit (hard to do)

new toy
FSP Proxy repeater - look at old code.

PERFORMANCE:
host hashtable shrinking sometimes
stat cache pro FSP_STAT a ostatni staty
chage O(N) fifo cache to some more sane lru hashtable code. 
background time() alarm() caller 
Current performance 1925648B/s

MAN:
finish sgml FAQ
separate manpage for 7 fsp (protocol definition) == write FSP RFC

libraries and support for FSP protocol
======================================

DONE: FSP library for Java
DONE: FSP over HTTP
FSP plugin for Netscape/MSIE. 
  Not possible to write protocol plugins with Netscape 3 SDK 
  we have fsproxy now.
WIP:  new small,light fsplib for C.
FSP backend for APT
Transfer HTTP over fsp transport
FSP support to lftp,wget,curl,gftp
AVFS plugin http://sourceforge.net/projects/avf

LARGEFILES64 how to turn them on:

Cygwin: #define __LARGE64_FILES fopen64,ftello64,fseeko64 _off64_t
glibc 2.3: #define _LARGEFILE64_SOURCE off64_t
native: _FILE_OFFSETS_BITS = 32 / 64 then use off_t
FreeBSD: in 5.X always enabled, in 4.X not supported.
