This file's purpose is to provide a breakdown of important features/fixes
that can be implemented by any competent C programmer.

+ means todo
= means done


----------------
FCPtools generic
----------------

+ Update ezFCPlib documentation.

+ Confirm OS X functionality.
+ Confirm *BSD functionality.
+ Confirm Solaris functionality.

+ Add usage instructions to README for fcpget, fcpputsite.
+ Add fcphello command to just send ClientHello to node (ft-0.2).
+ Make FEC_CHUNK_SIZE configurable; default to 1M.
+ Implement no_dbr option.
+ Implement default_doc option (defaults to index.html).
+ Implement future_insert(num_days) option.
+ Implement SkipDS logic.
+ Implement DeleteDS logic.
+ Verify other options (raw, etc.) work as expected.

+ Implement an insertion/retrieval scheduler layer; directly above the fcpWriteKey() and fcpPutKeyFromFile() routines.
  Would provide the following functionality as well:
  
  + Retry option; attempt again (due to error or Restarted message) to insert or retrieve the named key.  After 'n' retries, return with error.
  + Insert thread count; maximum number of non-FEC insert threads; make FEC insert thread count hardcoded to 1.
  + FEC_insert thread count; should treat these 2 threading situations differently for some reason.


-----------------
ezFCPlib specific
-----------------

+ Implement Key Retrival code (currently only code for inserting).
+ Implement metadata handling for FEC encoded files (specifically in ./ezFCPlib/_fcpPut.c:fec_make_metadata()).
+ Check all internal APIs for consistant usage and funcionality.
+ Handle HighestSeenBuild from NodeHello message.
+ Make fcpLog() work with files as well as standard output.
+ Add logic for processing Info.Format and Info.Description metadata key/val pairs.
= Add keygen code.
+ Implement CheckBlockOffset and DataBlockOffset in handling of fec segment headers.
  (it's causing the java.lang.NumberFormatException messages in Fred's log).
+ #define HFCP to hFCP to ease transition.
+ Decide which global vars should be handled by CreateHFCP and which need setter functions for modification
  (not acceptable that ezFCPlib needs to be loaded in order to change configuration parameters).
+ Implement retry logic, so that ezFCPlib attempts to insert _fcpRetry times on failed message.

------
fcpput
------

= Implement -g command-line switch (GenerateKeypair).
+ Optimize main()'s speed read from standard input.
+ (Win32); returns to command prompt with (harmless) error when reading key data from stdin.


----------
fcpputsite
----------

+ Re-link againt ezFCPlib and implement site-wide specific insert logic.


------
fcpget
------

