2
0
mirror of synced 2025-02-24 14:48:27 +00:00

2262 Commits

Author SHA1 Message Date
Matt Joiner
92162295af Clone the AnnounceList out of Torrent.Metainfo
Should fix a race with Torrent.AddTrackers
2020-04-15 17:26:02 +10:00
Matt Joiner
bb3ae90cd2 Comments and reduced locking in trackerScraper.Run 2020-04-15 17:26:02 +10:00
Yaroslav Kolomiiets
2b2c480706 PEX: add periodic deltas 2020-04-15 17:24:44 +10:00
Yaroslav Kolomiiets
93430aa01a PEX: add connection tracking 2020-04-15 17:24:44 +10:00
Yaroslav Kolomiiets
634edd2875 Share current connections with peers over PEX (anacrolix#341) 2020-04-15 17:24:44 +10:00
Craig Campbell
6920298770 Add Piece.UpdateCompletion() method
This should be all that is needed to handle pieces that are evicted or
removed from storage if you are using a storage implementation such as an LRU
cache.
2020-04-05 08:57:58 +10:00
ucwong
c435d713c4 cmd/torrent-pick | add missing ticker.Stop() call 2020-04-03 17:02:16 +10:00
Matt Joiner
2c00258e70 Switch CI to go1.14 2020-03-29 11:38:25 +11:00
Matt Joiner
2ea04e9083 Use default bbolt package alias 2020-03-24 12:55:03 +11:00
Matt Joiner
7175dba614 Fix bbolt compatibility with go1.14 2020-03-24 12:55:03 +11:00
Alfonso Montero
f7002cb860 Readme: Add downstream project 2020-03-24 11:30:15 +10:00
Matt Joiner
364d3dd208 Rewrite file.bytesLeft
Avoids iteration, and should handle files that are entirely inside a single piece, as well as zero-sized at the beginning of a torrent. Should fix #387.
2020-03-24 12:15:35 +11:00
Matt Joiner
4be8b12207 Rename variables in fileBytesLeft 2020-03-24 11:21:42 +11:00
Matt Joiner
3507ff1a69 Add abstraction and tests for #387 2020-03-24 11:19:11 +11:00
Matt Joiner
378ccd0932 Logging improvements for DHT 2020-03-17 13:48:09 +11:00
Matt Joiner
c83738f3f4 Update to latest anacrolix/dht 2020-03-17 13:47:53 +11:00
Matt Joiner
4a5b891a34 Add doc comments related to #383 2020-03-16 16:30:39 +11:00
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