*refactor session
*refactor infohash
*verify src/torrent/info.c special inclusion in tests (for prefix overriding?)
+-refactor blocks
+ -need block index for requests
+ -consider storing layers
+ -or proof path
+ -blocks to root
-networking
*port option
*tcp
-peer protocol
*header
*handshake
- -piece selection
+ -choke
+ -unchoke
+ -interested
+ -not_interested
+ -have
+ -necessary for dht?
+ -skip?
+ -bitfield
+ -use to start filling priority queue of pieces
+ -start loading up pieces
+ -request
+ -piece
+ -cancel
+ -reject
+ -hash_request
+ -hashes
+ -hash_reject
+-tests
+ -peer
+ -need socket
+ -watch
+-signal handler
+ -graceful shutdown
+ -watch threads
+ -logging thread
+ -during adding
+ -mid-request in server
+-daemonize
+
+Later:
-trackers
-opts
-remove sample code
-tests for tree_entry
-perror calls
-use logging?
--watch
- -verify works properly
- -unit test with new configuration?
- *start watching thread
- *figure out flags
- -blocking vs. non-blocking
- -on modification
- -rebuild torrents+feeds
- -rebuilding access considerations
--signal handler
- -graceful shutdown
- -watch threads
- -logging thread
- -during adding
- -mid-request in server
--daemonize
--test
+ -watch
+ -blocking vs. non-blocking
+ -on modification
+ -rebuild torrents+feeds
+ -rebuilding access considerations
+-test improvements
-parallize?
-distinct directories per test
- -integration test setup
-generate man page
-document cli/config options
Stage 3:
-webtorrents
-Later:
+State 4:
-explore phone app/podcast app integration