AFFLIB Buglist and roadmap.
* afconvert should calculate MD5, SHA256 and SHA1
* Store TOC sorted and find entries with binary search.
(A 1TB TOC has 62,500 pages or 100K segments; with fixed size records that would be 8,000,000, which is not much.)
* aff_write_seg() shouldn't be calling af_rewind_seg after every call
* af_write() shouldn't be calling lseek() and write() so many times.
- move to scatter/gather writing.
- look at the TOC to know how much space is available.
- Make the TOC always used. Trust the TOC.
* Test all programs with file://-style URLs. You can't test for existence of a file with
access(). This is an issue for -z in afcopy.
* image_size not set for AFM files; does it need to be set, or is it generated on the fly?
* afcrypto should note if a file can't be decrypted.
* library doesn't automatically write SHA1s and SHA256s; need to be selectable.
* combine affix and afrecover into a single executable.
* combine afconvert and afcopy into a single executable.
* better error handling in aimage?
* Graacefully handle expat not installed?
* improve performance of
- cache memory selection size - * Automatically increase cache to use 1/2 of physical RAM?
- cache algorithm
* Add support for http://mingw.org/
* badflag needs to be reimplemented as a bitfield.
* Since we have the TOC, is there EVER a case in which we need to scan the whole file?
If not, perhaps we can take out those scan routines.
* Keep track of sectors that have been touched and output.
* Some kind of sector map array. (Bit array? Byte array?)
* A 1TB disk has 2 billion sectors and 62,500 AFF pages; do we need to store this in a better
data structure than an unsorted linear list?
* Have aimage update more often
* Final report on bytes written is wrong.
* Fix imaging over the network
* Keep a log of everything imaged, # of bad blocks, MD5, etc.
* Image from an SSL tcp connection.
* notify user of kernel error messages; write them to segment
* Report if drive is wiped
* -A mode needs some work; it sometimes compresses too much.
* Digitally sign the AFFs
* option - BADFLAG or BLANK errors
* Option to output a specific sector or a range of sectors
* Multiple ranges of bytes
* Make SIGINFO work
* -d - just compare data
* -s3 - just check to see if the named segments got written.
- Just compare MD5s!
* don't copy the file if it won't fit.
* preserve timestamps
* have the file names .aff.new, and rename to .aff after complete.
* if there are _md5/_sha1/_sha256 segments, read all of those segments first and verify them.
* if AFFLIB_PASSPHRASE is set and a file is copied, the resultant file is broken.
* This didn't work: afconvert -q -o /project3/1028.raw /project2/p3/1028.aff
* Uploading shouldn't decrypt first.