Commit Graph

2371 Commits

Author SHA1 Message Date
Matt Joiner 538efd12bd Restore the default duplicate request timeout strategy 2020-01-24 17:34:07 +11:00
Matt Joiner 48eb7ff3f2 Expose request strategies 2020-01-24 17:30:57 +11:00
Matt Joiner 2044457959 Fix unimplemented hooks in request strategies one and two 2020-01-24 15:09:39 +11:00
Matt Joiner 737596d3df go get -u && go mod tidy 2020-01-23 14:16:46 +11:00
Matt Joiner 913f6df80d Use CopyN to ensure early io.EOF isn't ignored when hashing pieces 2020-01-23 13:56:39 +11:00
Matt Joiner 2c1afff8b3 Skip 1 frame in reader.log 2020-01-23 13:55:40 +11:00
Matt Joiner cf0d0118ea Finish fixing IP banning on storage errors 2020-01-23 13:54:37 +11:00
Matt Joiner 4fae1f81df Record connection dirtied piece before queuing for hash
Not a bug, but probably more robust.
2020-01-23 13:52:17 +11:00
Matt Joiner dc643d2ed3 Update code comments 2020-01-23 13:51:14 +11:00
Matt Joiner 1d5b8f7451 Reflow some comments 2020-01-22 15:56:16 +11:00
Matt Joiner dc39e98cfb Fix race in requestStrategyThree request timeout callback 2020-01-20 11:51:24 +11:00
Matt Joiner ff8ce944e9 Upgrade github.com/pkg/errors@v0.9.0 2020-01-14 15:42:27 +11:00
Matt Joiner cfc68d3ae6 Fix bad init of Torrent.requestStrategy 2020-01-14 10:51:09 +11:00
Matt Joiner 35cdebdc3b Fix panic in benchmark due to requestStrategy changes 2020-01-14 10:51:09 +11:00
Matt Joiner 2559af0f9c Extract the request timeout stuff into requestStrategyThree 2020-01-14 10:51:09 +11:00
Matt Joiner 4c989da21e Extract the request strategy logic
Bit messy. Now it'll be easier to clean-up what it depends on, and test.
2020-01-14 10:51:09 +11:00
Matt Joiner 5a1af60e96 Formatting 2020-01-14 10:51:09 +11:00
Matt Joiner 381fb293a5 Fix typos and spellos in comments 2020-01-14 10:51:09 +11:00
Matt Joiner 31fdcb3463 Update missinggo 2020-01-14 10:51:09 +11:00
Matt Joiner 72e54fb353 Resource per piece storage: Store incomplete chunks separately 2020-01-14 10:51:09 +11:00
Matt Joiner 1039e00955 When piece checks fail only ban untrusted peers and only when the entire piece is dirty
This should help with addressing https://github.com/anacrolix/torrent/issues/364.
2020-01-14 10:51:09 +11:00
Matt Joiner bf0498ed5a Improve hash piece error logging 2020-01-14 10:51:09 +11:00
Matt Joiner b9fb0bf2a2 Don't create piece hashers for closed Torrents 2020-01-14 10:51:09 +11:00
Matt Joiner 4911b29903 Use subtests in TestClientTransferVarious 2020-01-14 10:51:09 +11:00
Matt Joiner 814a714459 Propagate back piece hashing errors
Attempting to solve https://github.com/anacrolix/torrent/issues/364.
2020-01-14 10:51:09 +11:00
James Lawrence ad73cf8611 fixes various vet errors 2020-01-14 09:09:09 +10:00
Matt Joiner 98bd488466 Fix a log level 2020-01-07 10:50:18 +11:00
Matt Joiner c9f9235117 Fix panic in logging
Found by @ccampbell.
2020-01-07 10:44:58 +11:00
Matt Joiner e80834b899
Update FUNDING.yml 2020-01-06 09:02:11 +11:00
Matt Joiner baefdfd9ea Disable accept rate limiting by default
It messes with any non-standard usage, like localhost etc. It might even just be a bad idea when interacting with clients that behave like ourselves: opening connections with varying encryption and protocols simultaneously to each peer.
2020-01-04 17:17:56 +11:00
Matt Joiner bd4176f5ea cmd/torrent: Disable accept rate limiting 2020-01-04 17:16:48 +11:00
Matt Joiner 3a733e530c Improve logging and errors for accept rate limiting 2020-01-04 17:14:18 +11:00
Matt Joiner 6cc65683e5 Revert to log v0.4.0 2020-01-04 16:43:15 +11:00
Matt Joiner 8323dd9a14 cmd/torrent: Move log setup earlier to avoid race 2020-01-04 16:41:18 +11:00
Matt Joiner 5746877e1d cmd/torrent: Synchronize stopping 2020-01-04 16:41:02 +11:00
Matt Joiner 01f9fdb921 Upgrade to log v0.5.0 2020-01-03 15:37:08 +11:00
Matt Joiner bfbed8ab6d cmd/torrent: Make the addr flag a string
This avoids tagflag trying to resolve it, and then passing a bad IP for different listen networks. There's also a patch to tagflag so it doesn't do this anymore.
2020-01-03 14:51:26 +11:00
Matt Joiner e24a9b343f cmd/torrent: Add dht flag 2020-01-03 14:51:26 +11:00
Steve Yoon d34dfa6575 propagate proxy url parsing err 2020-01-02 09:18:14 +10:00
Sick Yoon 32579e72c7 disable listeners if proxy is configured 2020-01-02 09:18:14 +10:00
Matt Joiner 76f1516d3a Update dht to v2.3.1
Fixes a race in bootstrap stats.
2019-12-29 13:00:20 +11:00
Matt Joiner d4e90519e6 Use new anacrolix/multiless, and incorporate Peer.Trusted into peer prioritization 2019-12-23 14:04:07 +11:00
Matt Joiner cf85d70a5c bencode: Rename string_values->stringValues 2019-12-23 13:39:34 +11:00
Matt Joiner 4104880a66 Remove unnecessary locking in Torrent.Piece 2019-12-18 16:49:15 +11:00
Matt Joiner 5f1d937b62 Add connection trust flag, and more tests with small caches
Thanks to observations and feedback from @ccampbell.
2019-12-18 13:52:00 +11:00
Matt Joiner 9e1804f52e Switch back to anacrolix/sync for the Client lock 2019-12-17 20:49:40 +11:00
davtoro 82e1c81a9a Possibility to change UPnP ID (#354) 2019-12-16 13:22:24 +11:00
Matt Joiner f448f55e88 Coalesce piece state change notifications on client unlock
Reported by Craig Campbell <iamcraigcampbell@gmail.com>.
2019-12-13 15:55:56 +11:00
Yates 790ba6af3c use path.utf8 first for some torrent (#350) 2019-12-08 20:35:40 +11:00
D. HT. Yu 6e95274413 fix if statement in `cmd/torrent/main.go` (#349) 2019-12-08 20:34:24 +11:00