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

1073 Commits

Author SHA1 Message Date
Matt Joiner
976510db60 Add DHT nodes from metainfo when added to Client 2016-02-24 21:56:50 +11:00
Matt Joiner
2fa233345e dht: Rename newDHTAddr->NewAddr, and clean up the interface 2016-02-24 02:02:33 +11:00
Matt Joiner
7b0b0f9bf9 dht: Rename dHTAddr to Addr 2016-02-24 01:50:15 +11:00
Matt Joiner
5665505dc7 Test that metainfo nodes are added to the DHT 2016-02-24 01:48:44 +11:00
Matt Joiner
a04fb2ce26 metainfo: Check for error unmarshalling bad nodes contents from a metainfo 2016-02-23 23:53:39 +11:00
Matt Joiner
621ec7bac4 dht: Misc trivial improvements 2016-02-23 23:52:30 +11:00
Matt Joiner
9c7d3d4783 metainfo: Fix use of CastSlice when copying nodes 2016-02-23 22:47:41 +11:00
Matt Joiner
d67379b3cb metainfo: Ensure that nodes encode correctly 2016-02-23 22:37:38 +11:00
Matt Joiner
752e884155 metainfo: Support nodes as []string or [](string, int64)
Fixes #65.
2016-02-23 22:28:23 +11:00
Matt Joiner
b3a5591d14 metainfo: It looks like the "nodes" field of metainfo was never handled correctly, support []string instead of [][]string, fix tests 2016-02-23 22:04:06 +11:00
Matt Joiner
7ed81fa708 metainfo tests: Fix some naming conventions 2016-02-23 21:50:07 +11:00
Matt Joiner
c0cef5274b bencode: Update some test code 2016-02-23 21:47:00 +11:00
Matt Joiner
fd5da294ff bencode tests: Idiomatize identifier naming 2016-02-23 21:43:05 +11:00
Matt Joiner
f470f04d8f bencode: Use the testdata convention in tests 2016-02-23 21:31:15 +11:00
Matt Joiner
c03593bc01 Catch error creating new client in test 2016-02-22 14:30:02 +11:00
Matt Joiner
c371502cb3 Fix failure to request data from peers if it goes missing after being downloaded during the same session
The chunks remained marked dirty, even after the piece was marked complete. So when the piece was not complete, there was nothing to do.
2016-02-22 03:23:49 +11:00
Matt Joiner
fd37f5c24b fs: Fix what looks like a glaring mistake: If Seek failed on the torrent reader, it would have got stuck
Since Seek is artificial, and the offsets are usually checked in the caller, it looks like it never failed anyway.
2016-02-22 02:44:29 +11:00
Matt Joiner
5cfa8232ed Fix races in Reader 2016-02-22 02:42:01 +11:00
Matt Joiner
033c95d73b Add a client transfer test with limited file cache, and a second pass read 2016-02-22 02:41:07 +11:00
Matt Joiner
ca5080a382 fs: Change listen addrs to localhost in tests
Seems to improve reliability. Maybe the missinggo.Addr{IP,Port} change did something.
2016-02-22 02:39:49 +11:00
Matt Joiner
815d118d6e fs: Tidy up tests 2016-02-22 02:38:52 +11:00
Matt Joiner
c50742fdac Move exportClientStatus to testutil.ExportStatusWriter 2016-02-22 02:36:41 +11:00
Matt Joiner
c184129865 Update Reader pos between reads 2016-02-22 00:32:02 +11:00
Matt Joiner
fd42ed877f Don't run TestCompletedPieceWrongSize in parallel because it messes up logs 2016-02-22 00:31:06 +11:00
Matt Joiner
c64ad19dbb Test a ton of permutations for readahead and responsive 2016-02-22 00:30:42 +11:00
Matt Joiner
4846021c0c Tidy up TestClientTransfer 2016-02-21 22:08:01 +11:00
Matt Joiner
61af11fddc Off by one error in torrent.pieceLength? 2016-02-21 17:25:47 +11:00
Matt Joiner
380dc7a2b4 Add peer_protocol.Integer.Int() 2016-02-21 17:25:26 +11:00
Matt Joiner
5b443fb63d Refresh all piece completion states when data is missing 2016-02-21 17:24:59 +11:00
Matt Joiner
99e9f41a33 Choke peers when we lose pieces they requested, and drop them if they request pieces we don't have 2016-02-21 17:22:55 +11:00
Matt Joiner
400fa1feaf Fix race updating piece priority when piece being read is unexpectedly unavailable 2016-02-21 03:33:39 +11:00
Matt Joiner
e20858a1e8 Move dataReadAt to torrent.readAt, and do the waitNoPendingWrites check there 2016-02-21 03:32:59 +11:00
Matt Joiner
dcdf85a474 Ditch the torrent stateMu for the client mutex 2016-02-21 03:31:50 +11:00
Matt Joiner
f6472fc1fd Code comment 2016-02-20 14:41:04 +11:00
Matt Joiner
89ec237769 Improve log message 2016-02-20 14:40:55 +11:00
Matt Joiner
f76d86da4f Use new error handling philosophy 2016-02-20 14:40:28 +11:00
Matt Joiner
3c801bed27 Export torrent.String to Torrent 2016-02-20 14:39:56 +11:00
Matt Joiner
d5f888069f Ditch Data.WriteSectionTo, and fix cmd/torrent-verify 2016-02-18 11:45:31 +11:00
Matt Joiner
dcce061152 Rework Reader reading, and TestCompletedPieceWrongSize 2016-02-17 18:26:10 +11:00
Matt Joiner
bb77502eab data/file: Return EOF on reads past end 2016-02-17 17:58:20 +11:00
Matt Joiner
0acad8eeac Avoid error message when we attempt to complete a piece that's already complete 2016-02-17 17:21:03 +11:00
Matt Joiner
b6a1a685cd Remove pointless code 2016-02-17 17:20:43 +11:00
Matt Joiner
589ab02dc4 Ensure piece completion state is correct at startup 2016-02-17 17:20:21 +11:00
Matt Joiner
c89a391056 data/pieceStore: Incorrectly public PieceCompleted method 2016-02-17 17:10:34 +11:00
Matt Joiner
73208b97ca Code comments 2016-02-17 17:09:43 +11:00
Matt Joiner
7ab984ab52 Add a test for starting a torrent where pieces are already complete 2016-02-17 17:09:05 +11:00
Matt Joiner
90718d086c Rename issue 35 testing config function to avoid confusion 2016-02-17 17:08:01 +11:00
Matt Joiner
0f9f7ba01b Add torrent.completedPieces bitmap
Reduce load on data.PieceComplete for torrents with lots of pieces, when reader position changes. Not sure of the improvement yet.
2016-02-17 00:00:55 +11:00
Matt Joiner
be6052912f Improve error message when piece fails to be completed
Happens occasionally on some servers, can't work out why.
2016-02-16 23:35:19 +11:00
Matt Joiner
a6759b321a Only assert we should be requesting a piece in debug mode 2016-02-15 17:47:04 +11:00