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 |
Matt Joiner
|
a17e31794c
|
Merge pull request #64 from robaman/master
Retain query parameters from announce URL.
|
2016-02-15 07:22:36 +11:00 |
Robert Kästel
|
82b7abb877
|
Retain query parameters from announce URL.
|
2016-02-14 21:15:51 +01:00 |
Matt Joiner
|
b514434581
|
Trigger piece request order changes on connections in a few spots
The client was requesting already obtained data in certain circumstances. This fixes it.
|
2016-02-11 17:57:57 +11:00 |
Matt Joiner
|
65fd332afd
|
Use Cache.StatFile to get piece length in the backend
|
2016-02-10 00:48:23 +11:00 |
Matt Joiner
|
5b5ecb8f3b
|
Still update a connections piece priority even if the peer doesn't have the piece
|
2016-02-10 00:47:53 +11:00 |
Matt Joiner
|
034c816934
|
torrent.piecePartiallyDownloaded incorrectly returned true when all the chunks were dirty
|
2016-02-10 00:46:54 +11:00 |