Matt Joiner
7fe199992c
Use stable bit set for pending pieces PriorityBitmap
...
Fixes #382 .
2020-02-27 18:33:44 +11:00
Matt Joiner
9fb9112d8f
cmd/torrent: Ditch the progress bar
...
I'm not happy with any implementations. The one in use was racy anyway. Helps progress toward fixing #382 .
2020-02-27 16:50:14 +11:00
Matt Joiner
19ce53e69f
Make io.EOF an expected error from storage.Piece.ReadAt
...
Fixes #381 .
2020-02-27 16:45:57 +11:00
Matt Joiner
ea71bf770c
Expose PieceStateRun formatting
2020-02-27 16:42:33 +11:00
Matt Joiner
75e55a3e99
Add Piece.State
2020-02-27 16:41:33 +11:00
Matt Joiner
436da59801
Move requestStrategyDefaults into its own file
2020-02-27 09:45:13 +11:00
Matt Joiner
bae791a5a2
Disable data downloading on storage write errors
...
Also add a hook and Torrent methods to modify this.
2020-02-22 19:40:50 +11:00
Matt Joiner
ddc61845ac
Misc cleanup
2020-02-22 19:38:56 +11:00
Matt Joiner
b16118ee18
Add a test for storage write errors
...
Addresses #377
2020-02-21 14:56:21 +11:00
Matt Joiner
c855c7a366
Differentiate between storage.ClientImpl{,Closer}
2020-02-21 14:12:44 +11:00
Matt Joiner
7d25cfdd1d
Move envpprof imports around
2020-02-21 12:58:47 +11:00
Matt Joiner
ddddc63924
Expose PeerConn.PeerPieces
...
Fixes #375 .
2020-02-21 11:51:24 +11:00
Matt Joiner
dff436f102
Rename connection->PeerConn and fix exports
2020-02-21 11:07:50 +11:00
Matt Joiner
01955ebe80
Tweak DHT status output
2020-02-21 09:47:46 +11:00
Matt Joiner
afe4d8795d
Support custom DHT servers
...
Addresses #266 .
2020-02-20 17:46:29 +11:00
Matt Joiner
71f18f1042
Remove ClientConfig.ProxyURL and DefaultHTTPUserAgent
...
ProxyURL is no longer used for implicit sockets, this will ensure consumers are aware. It's other behaviour is already more correct specified through HTTPProxy.
DefaultHTTPUserAgent was vestigial, and is specified now through the ClientConfig.
2020-02-20 17:04:11 +11:00
Matt Joiner
3505d126d4
TestClientDisabledImplicitNetworksButDhtEnabled
2020-02-20 16:57:28 +11:00
Matt Joiner
d24922dc09
Add support for non-IP-based networks
...
Includes a test with unix sockets. Exposes AddDialer, AddListener, and reworks Peer.
2020-02-20 16:47:37 +11:00
Matt Joiner
0d4858ba29
Extract the transfer tests
...
We need them external the torrent package so we can test the API for adding dialers and listeners.
2020-02-20 13:57:24 +11:00
Matt Joiner
e9e128cbf8
Split Client dialers and listeners
2020-02-20 11:10:05 +11:00
Matt Joiner
376ff763fe
Apply staticcheck
2020-02-20 11:09:57 +11:00
Matt Joiner
1137956861
Remove funding file
...
It's drawn automatically from anacrolix/.github now.
2020-01-29 09:12:49 +11:00
Matt Joiner
466cced13a
Make use of requestStrategyDefaults in more places
2020-01-24 19:24:28 +11:00
Matt Joiner
53e334d3f2
Move all the request strategy stuff into its file
2020-01-24 17:55:20 +11:00
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