- Return partial piece to coordinator after reject
- Fix tracking of downloaded portion of piece after reject
- Send reject on receipt of bad request
- Mark piece unrequested after receiving bad data, so it
will be requested again, but not from the same peer
- Fix NPE in Request constructor on error
- Fix stuck before completion due to reject handling (ticket #1633)
- Fix (again) partial piece avoidance for seeds
- Fix several partial piece (temp file) leaks,
some uncovered by previous rarest-first fixes, some in end game
- Don't lose all DHT peers if we stop quickly (backport from update branch)
- Explore a kbucket if it's less than 3/4 full (backport from update branch)
- Change DHT from option bit to extension message
- Add DHT start/stop code
- Add UI for DHT enabling
- Add raw datagram protocol type and use for response port
- Store received chunks in temp files
- Don't allocate from heap for unneeded chunks
- Remove peer count restriction for torrents with large pieces
- Use priorities and rarest calculations to sort partials
- Preserve p parameter in clear messages link
- Better BEValue.toString()
(most of the following got missed in the last checkin)
- Fix about 9 NPEs
- Fix numwant in magnet mode
- Send metadata size in extension handshake
- Open trackers are primary if we don't have primary trackers
- Add missing break in port message handling
- Increase max msg size to account for metadata msg
- Remember magnets across restarts
- Drop peers w/o extensions if we need metainfo
- Fix DATA messages
- Fix tracker transition to non-magnet
- Fix infohash for non-magnet
- Fix up peer transition to non-magnet
- More logging
- Drop queued outbound requests when choked
- Redo some data structures and locking to hopefully prevent deadlock
- Memory reduction part 3: Return partial pieces to PeerCoordinator when choked
- Limit number of parallel requests of a single piece when in the end game
- Shorten and weight the speed tracker so the display is more
reflective of current speed
* TunnelPeerSelectors:
- Re-enable strict ordering of peers,
based on XOR distance from a random hash
- Restrict peers with uptime < 90m from tunnels (was 2h),
which is really 60m due to rounding in netDb publishing.
* i2psnark:
- Limit max pipelined requests from a single peer to 128KB
(was unlimited; i2p-bt default is 5 * 64KB)
- Increase max uploaders per torrent to 6 (was 4)
- Reduce max connections per torrent to 16 (was 24) to increase
unchoke time and reduce memory consumption
- Strictly enforce max connections per torrent
- Choke more gradually when over BW limit
* help.jsp: Add a link to the FAQ
* peers.jsp: Fix UDP direction indicators
* hosts.txt: Add update.postman.i2p