Commit Graph

3134 Commits

Author SHA1 Message Date
Matt Joiner 6f196c8d33 Update piece priority after processing piece hash result
Seems to avoid some silly performance issues in triggering request updates due to a piece still pending while being marked.
2021-10-19 14:03:03 +11:00
Matt Joiner 329578520a Pieces being marked should have priority none
Also reorder the checks a bit to favour the cheaper ones.
2021-10-19 14:00:52 +11:00
Simon Kirsten 637045c19a
Add DisableInitialPieceCheck option (#677) 2021-10-11 11:33:40 +11:00
Matt Joiner 1b78a9bcc6 Update requests on unchoke 2021-10-07 17:20:04 +11:00
Matt Joiner 4d496bf756 cmd/torrent: Ensure envpprof.Stop runs before exit 2021-10-07 17:00:39 +11:00
Matt Joiner 15a2d3fb23 go mod tidy
Fixes broken go doc: https://github.com/golang/go/issues/36811#issuecomment-937401816
2021-10-07 13:56:45 +11:00
Matt Joiner 72a06d88fc Add TorrentStats.PiecesComplete
Fixes https://github.com/anacrolix/torrent/issues/352.
2021-10-07 13:50:13 +11:00
Matt Joiner 62c83a5b9c Add to tests for Torrent.Complete 2021-10-07 13:38:29 +11:00
Matt Joiner f47a12bd32 Return errors from Client.Close 2021-10-07 13:31:08 +11:00
Matt Joiner 28e9064288 Fix comment that seems to mess with GoLand's package structure 2021-10-07 12:09:52 +11:00
Matt Joiner c9c137d8f2 Add a flag for Complete 2021-10-07 12:09:20 +11:00
Matt Joiner 81c47d5705 Upgrade Torrent.GotInfo 2021-10-07 11:50:30 +11:00
Matt Joiner 9720fd576d Update chansync 2021-10-07 11:45:09 +11:00
Matt Joiner 118391c3bf Apply some lints from GoLand 2021-10-07 09:12:17 +11:00
Matt Joiner 11ae25660a Remove old-style build tags 2021-10-07 09:12:17 +11:00
Matt Joiner eab111dd84 Switch Peer.PieceAllowedFast and several request strategy inputs to raw roaring.Bitmaps
This is in preparation to support encoding request strategy run inputs for benchmarking.
2021-10-05 20:06:23 +11:00
Matt Joiner fd8995dcfd go fmt ./... 2021-10-05 17:48:52 +11:00
Matt Joiner da1221dd50 Change Peer._peerPieces to use raw roaring Bitmap type
The wrapper type was from when roaring didn't support zero-alloc initialization.
2021-10-05 17:48:34 +11:00
Matt Joiner 719d5c6400 Wrap error with %w in mainReadLoop 2021-09-30 12:01:56 +10:00
Matt Joiner 846167c63e Fix mainReadLoop benchmark 2021-09-30 12:01:34 +10:00
Matt Joiner 4ed855070f Fix scheduling overhead in decoding benchmark 2021-09-30 11:52:50 +10:00
Matt Joiner 702cf3c8f7 Combine peer protocol fuzz targets into one file 2021-09-30 11:19:50 +10:00
Matt Joiner 2027028539 More optimizations in peer protocol message decoding 2021-09-30 11:05:01 +10:00
Matt Joiner 73696fd215 peer_protocol: Use faster form for Integer.{UnmarshalBinary,Read} 2021-09-30 10:24:03 +10:00
Matt Joiner 60a622ff4b Remove an allocation reading message length 2021-09-30 09:59:18 +10:00
Matt Joiner 709ee70b0c Try to avoid allocating buffer 2021-09-30 09:45:50 +10:00
Matt Joiner b69e6dff01 Improvements to decoder fuzzing 2021-09-30 09:42:54 +10:00
Matt Joiner 1b66994c0a Add some fuzzing in peer_protocol 2021-09-30 09:01:10 +10:00
Matt Joiner 6156aebf71 Limit decoded bencode string lengths to 32 bits
Found in fuzzing
2021-09-29 16:56:01 +10:00
Matt Joiner fcf65ee56a Add some fuzzing seeds 2021-09-29 12:12:16 +10:00
Matt Joiner 10ecd4390a Fix parsing of strings that don't fit in memory 2021-09-29 12:11:58 +10:00
Matt Joiner 03f8ec7090 Fix fuzz comparison of big.Int 2021-09-29 12:11:17 +10:00
Matt Joiner 2daad6e564 Update fuzz to use new standard library support 2021-09-29 11:51:03 +10:00
Matt Joiner a9aec0bb79 Simplify bencode.Decoder.parseStringInterface 2021-09-29 09:50:01 +10:00
YenForYang 37455d3c6b
bencode: optimize `(*Decoder).parseStringInterface()` (#659) 2021-09-29 09:30:35 +10:00
YenForYang 86fe6cc872
Inlineable `(*Torrent).BytesMissing()` (#633)
Honestly a name like `BytesLeft` would have been more suitable, but it's too late for that I guess.
2021-09-27 12:43:09 +10:00
YenForYang 644a746b6b
Inlineable `addrIndex` (#673) 2021-09-27 12:41:20 +10:00
YenForYang 76f593e36b
Eliminate `expect` dependency (#667) 2021-09-24 00:10:30 +10:00
Matt Joiner a330b23e9e Default to peer requesting disabled
There are some flaws that need to be fixed up before it might be considered the default.
2021-09-21 16:07:08 +10:00
Matt Joiner ebd523e39c cmd/torrent: Don't make --stats default to --debug's value 2021-09-21 13:06:06 +10:00
Matt Joiner b6182bdce9 Remove unused function 2021-09-21 13:05:16 +10:00
Matt Joiner 4ca47eb358 Add ClientConfig.AlwaysWantConns 2021-09-21 13:04:51 +10:00
Matt Joiner c1744e37be cmd/torrent: Refactor and set progress interval to 3s 2021-09-21 10:48:16 +10:00
Matt Joiner ad70a761ec Use an iterator to skip through dirty chunks 2021-09-21 10:48:15 +10:00
Matt Joiner 40b0f9ca1e cmd/torrent: Include download stats on interrupt 2021-09-20 21:33:46 +10:00
Matt Joiner 63b3d2d211 Track dirty chunks in a single bitmap on Torrent 2021-09-20 18:52:54 +10:00
Matt Joiner 110b6f3fd3 Fix cancellation for global requesting 2021-09-20 15:24:24 +10:00
Matt Joiner 63f3e8d3de Merge branch 'master' into peer-requesting 2021-09-20 15:10:19 +10:00
Matt Joiner 510877ea43 Reduce the diff to master and add peerRequesting feature const 2021-09-20 15:09:28 +10:00
Matt Joiner 00a7300421 cmd/torrent: Dump download statistics 2021-09-20 14:17:58 +10:00