Commit Graph

3282 Commits

Author SHA1 Message Date
Yaroslav Kolomiiets bdb218a698 PEX: use new NodeAddr search methods in krpc 2021-12-11 19:18:30 +00:00
Yaroslav Kolomiiets 4a06517856 PEX: fluid event log 2021-12-12 00:27:28 +11:00
Matt Joiner 7197c5f493 Fix wasm build
This was broken in the move to zombiezen sqlite, which still doesn't work on WASM/JS.
2021-12-07 13:08:06 +11:00
Matt Joiner 22053c9238 Don't fail-fast on go versions 2021-12-07 12:42:35 +11:00
Matt Joiner a2c50ea2bd Handle 503 returns from webseed peer endpoints 2021-12-06 15:24:28 +11:00
Matt Joiner 32d9ec900c Record an observation about why webseed peers are doing most of the work in recent testing 2021-12-06 15:22:06 +11:00
Matt Joiner c653cf2070 Do webseed request parts sequentially
This means we can treat the number of bytes in the result with enough accuracy to decide if we should count it as a wasted chunk. Also I'm not sure why it was a good idea to do parts of a request in parallel anyway, it could just lead to spikes in outstanding requests to the webseed, rather than sticking to the predictable maxRequests limit.
2021-12-06 15:22:00 +11:00
Matt Joiner 9bee7c3bc4 Handle cancelled webseed peer requests if they're not active 2021-12-06 15:21:51 +11:00
Matt Joiner 56bb8a9713 Check if Torrent is closed before receiving webseed chunks 2021-12-06 15:19:00 +11:00
Matt Joiner a9373fc8fd Fix minimum peer extensions error message 2021-12-03 20:36:50 +11:00
Matt Joiner ab78c449b7 Reduce idle request updates due to choke and unchoke messages 2021-11-29 12:12:30 +11:00
Matt Joiner 5dba8f96e4 Merge branch 'udp-tracker-no-dial' into te 2021-11-29 11:19:54 +11:00
Matt Joiner 8e707c9b15 Remove unused peer stuff in request strategy 2021-11-29 10:14:16 +11:00
Matt Joiner 0f495ce97d Optimize the use of worstConnSlice again 2021-11-29 10:07:48 +11:00
Matt Joiner 4f3db19ca3 Optimize Torrent.haveAnyPieces 2021-11-29 00:44:24 +11:00
Matt Joiner 97e1e2469b Announce to DHT if we want conns, not just peers 2021-11-28 22:46:45 +11:00
Matt Joiner b196fe7765 Wanting peers is a subset of wanting conns 2021-11-28 22:40:55 +11:00
Matt Joiner f621f0f5a8 Don't want conns for seeding unless we have a piece 2021-11-28 22:40:53 +11:00
Matt Joiner 51f6f07633 Peers with all pieces have wanted pieces only if we want any piece 2021-11-28 22:36:19 +11:00
Matt Joiner 91e8f3e127 Abstract worseConn comparisons and add tests 2021-11-28 17:06:10 +11:00
Matt Joiner 878a3e468b Rename worst_conns.go 2021-11-28 12:53:18 +11:00
Matt Joiner 3626bb9fa9 Merge branch 'bsi-pending-requests' into te 2021-11-27 09:38:58 +11:00
Matt Joiner 3829c22062 Use modernc.org/sqlite version that fixes temp dir race 2021-11-26 17:06:13 +11:00
Matt Joiner 560b463983 Comment out pending requests tests and asserts
These need to be updated. BSI for pending requests removes an enormous amount of memory use for very large torrents.
2021-11-25 22:59:20 +11:00
Matt Joiner 8ddbf5a852 Revert "Use a flat slice for pending request counts"
This reverts commit dfc421824c.
2021-11-25 22:55:02 +11:00
Matt Joiner aaec4dbd80 tracker/udp: Panic on read errors if ConnClient not closed
There's nothing exposed to handle this error currently, and if it occurs, it's better not to fail in silence. I'm currently debugging a situation where ConnClients stop working, this would be a condition we'd want to know about.
2021-11-23 08:35:45 +11:00
Matt Joiner 615669ecf8 Improve logging of UDP tracker packet dispatch error 2021-11-23 08:33:29 +11:00
Matt Joiner aae32e2a31 Wrap UDP tracker response error 2021-11-23 08:32:25 +11:00
Matt Joiner 6cb65f4ecf Don't dial in UDP tracking
This could fix an issue where tracker addresses change, but we're already bound to a particular address and so fail to receive any more responses.
It should also make it easier to share UDP sockets between UDP tracker clients, although that's not currently implemented.
2021-11-22 18:11:09 +11:00
Matt Joiner 8555ab7f21 Doc comments 2021-11-22 18:10:47 +11:00
Matt Joiner 65ceef557a Remove CGO build flags for pure-Go squirrel branch 2021-11-19 20:29:30 +11:00
Matt Joiner 3ab251fcf5 Use zombiezen branch of squirrel 2021-11-19 20:10:07 +11:00
Matt Joiner 357896fb65 gofumpt 2021-11-19 16:19:32 +11:00
Matt Joiner 24f3ecc7cd Use zombiezen sqlite for piece completion 2021-11-19 16:18:41 +11:00
Matt Joiner 8e5ae65837 Quote peer extension names to expvar 2021-11-19 13:02:42 +11:00
Matt Joiner 370fc56c16 Pull synchronous firewall callback performance improvement
Reduces CPU overhead when receiving lot of UDP traffic.
2021-11-17 14:24:38 +11:00
Matt Joiner 2f907e84a8 Optimize PeerConn.peerHasAllPieces 2021-11-17 14:01:11 +11:00
Matt Joiner 0f81e0011f Avoid calling net.Conn methods with the Client mutex locked
The utp firewall callback might want to use it. I can't think of a better way to determine with an incoming connection request should be blocked.
2021-11-17 14:00:50 +11:00
Matt Joiner e81e12fab1 Use tagged version of github.com/anacrolix/fuse 2021-11-16 18:27:11 +11:00
Matt Joiner 8a7ddab785 Switch to github.com/anacrolix/fuse 2021-11-16 18:20:02 +11:00
Matt Joiner 8e44c702c1 Remove dependency on and exclude of github.com/willf/bitset 2021-11-16 17:36:48 +11:00
Matt Joiner c442a22ac2 Provide context to readahead func 2021-11-15 00:53:42 +11:00
Matt Joiner 9cc3201df9 Add Reader.SetReadaheadFunc
Fixes https://github.com/anacrolix/torrent/issues/687.
2021-11-15 00:53:42 +11:00
Matt Joiner 71cbea2fbc Add a comment about not discarding in webseed OK response bodies 2021-11-14 14:01:46 +11:00
Matt Joiner 60dd68ede9 Don't log legitimate non-range requests 2021-11-12 15:58:32 +11:00
Matt Joiner 8af369c11a Should fix failing go1.16 CI build 2021-11-12 15:18:20 +11:00
Matt Joiner 63b7215892 Improve error handling for bad webseeds
DNS "no such host" errors didn't interrupt the stream of outbound requests.
2021-11-12 14:43:22 +11:00
Matt Joiner a90ae5aed4 Pass HTTP Proxy config into webseeding HTTP client 2021-11-12 14:16:14 +11:00
Matt Joiner 1071e261e1 Remove unused Client.updateRequests 2021-11-12 13:55:43 +11:00
Matt Joiner dea0e41e29 Boost webseed max requests 2021-11-12 13:51:58 +11:00