# When marking something done/dropped, please add your name and the date.
# This TODO started January 16th, 2002.


+ means todo
= means done
- means the feature was dropped


+ Add options to disable caching on all content sent by Freenet (not freenet content, things like the various builtin images, the servlets and so on - freenet CONTENT has a no cache option in the config file already), for the really paranoid.
+ Implement online config updater options other than the very few already implemented
+ Implement web reconfiguration interface with automatic writing out of options to config file and changing on the fly of all that are possible via above mechanism
+ Make freenet work with just java -jar freenet.jar and go to the web interface... configure it on the web interface, no platform specific installer necessary
+ NIO work: make trailing fields asynchronous, make message sends asynchronous, etc
+ Clean up FProxy code - it is a mess - complete rewrite? Use NIO - LocalHTTPInterface is a good place to start, and AutoRequester now supports asynchronous fetches
+ Add "rpm" target to build.xml to create a redhat install file
+ Add "deb" target to create a debian install file
+ Add "webstart" target to create a webstart file
+ Make freenet nodes zero maintenance ("fire and forget") - firstly, we need to use fewer threads and less CPU, secondly we need to use less memory. Suggest profiling. Talk to Iakin about this.
+ Support FS resize as an admin-passworded FCP command
+ something is opening buffers, getting streams, and never closing them. This works OK with GC, but it would be better to find the leaks. However because it does work with GC, it is not urgent.
+ limit total # of fds used by NativeFSDirectory
+ implement the pre-mix stage to disguise HTL information
+ when one request for a file is in progress and another comes in, combine them. This is harder than it looks to make work correctly (I tried in the native fs dir, it flamingoed up)
+ is FNPClient being maintained? Does it handle Restarted etc correctly? Move it to attic if it's not being maintained
+ Move bookkeeping variables somewhere else - RequestState base class, or a large object pointed to by Node or Core. Not _in_ Core, where they are now. Consider using logging mechanism to collect info.
+ Allow multiple addresses in bindAddress - should be easy enough now that we have nio
