]>
Sergey Matveev's repositories - btrtrc.git/log
Matt Joiner [Fri, 26 Feb 2016 11:11:48 +0000 (22:11 +1100)]
dht: Use missinggo.Event for closing
Matt Joiner [Fri, 26 Feb 2016 11:10:29 +0000 (22:10 +1100)]
Add test checking that cancel works
Matt Joiner [Fri, 26 Feb 2016 11:10:09 +0000 (22:10 +1100)]
Catch error creating client in tests
Matt Joiner [Wed, 24 Feb 2016 10:57:30 +0000 (21:57 +1100)]
Fix bad DHT node in tests in constructed torrent
Matt Joiner [Wed, 24 Feb 2016 10:56:50 +0000 (21:56 +1100)]
Add DHT nodes from metainfo when added to Client
Matt Joiner [Tue, 23 Feb 2016 15:02:33 +0000 (02:02 +1100)]
dht: Rename newDHTAddr->NewAddr, and clean up the interface
Matt Joiner [Tue, 23 Feb 2016 14:50:15 +0000 (01:50 +1100)]
dht: Rename dHTAddr to Addr
Matt Joiner [Tue, 23 Feb 2016 14:48:44 +0000 (01:48 +1100)]
Test that metainfo nodes are added to the DHT
Matt Joiner [Tue, 23 Feb 2016 12:53:39 +0000 (23:53 +1100)]
metainfo: Check for error unmarshalling bad nodes contents from a metainfo
Matt Joiner [Tue, 23 Feb 2016 12:52:30 +0000 (23:52 +1100)]
dht: Misc trivial improvements
Matt Joiner [Tue, 23 Feb 2016 11:47:41 +0000 (22:47 +1100)]
metainfo: Fix use of CastSlice when copying nodes
Matt Joiner [Tue, 23 Feb 2016 11:37:38 +0000 (22:37 +1100)]
metainfo: Ensure that nodes encode correctly
Matt Joiner [Tue, 23 Feb 2016 11:28:23 +0000 (22:28 +1100)]
metainfo: Support nodes as []string or [](string, int64)
Fixes #65.
Matt Joiner [Tue, 23 Feb 2016 11:04:06 +0000 (22:04 +1100)]
metainfo: It looks like the "nodes" field of metainfo was never handled correctly, support []string instead of [][]string, fix tests
Matt Joiner [Tue, 23 Feb 2016 10:50:07 +0000 (21:50 +1100)]
metainfo tests: Fix some naming conventions
Matt Joiner [Tue, 23 Feb 2016 10:47:00 +0000 (21:47 +1100)]
bencode: Update some test code
Matt Joiner [Tue, 23 Feb 2016 10:43:05 +0000 (21:43 +1100)]
bencode tests: Idiomatize identifier naming
Matt Joiner [Tue, 23 Feb 2016 10:31:15 +0000 (21:31 +1100)]
bencode: Use the testdata convention in tests
Matt Joiner [Mon, 22 Feb 2016 03:30:02 +0000 (14:30 +1100)]
Catch error creating new client in test
Matt Joiner [Sun, 21 Feb 2016 16:23:49 +0000 (03:23 +1100)]
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.
Matt Joiner [Sun, 21 Feb 2016 15:44:29 +0000 (02:44 +1100)]
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.
Matt Joiner [Sun, 21 Feb 2016 15:42:01 +0000 (02:42 +1100)]
Fix races in Reader
Matt Joiner [Sun, 21 Feb 2016 15:41:07 +0000 (02:41 +1100)]
Add a client transfer test with limited file cache, and a second pass read
Matt Joiner [Sun, 21 Feb 2016 15:39:49 +0000 (02:39 +1100)]
fs: Change listen addrs to localhost in tests
Seems to improve reliability. Maybe the missinggo.Addr{IP,Port} change did something.
Matt Joiner [Sun, 21 Feb 2016 15:38:52 +0000 (02:38 +1100)]
fs: Tidy up tests
Matt Joiner [Sun, 21 Feb 2016 15:36:41 +0000 (02:36 +1100)]
Move exportClientStatus to testutil.ExportStatusWriter
Matt Joiner [Sun, 21 Feb 2016 13:32:02 +0000 (00:32 +1100)]
Update Reader pos between reads
Matt Joiner [Sun, 21 Feb 2016 13:31:06 +0000 (00:31 +1100)]
Don't run TestCompletedPieceWrongSize in parallel because it messes up logs
Matt Joiner [Sun, 21 Feb 2016 13:30:42 +0000 (00:30 +1100)]
Test a ton of permutations for readahead and responsive
Matt Joiner [Sun, 21 Feb 2016 11:08:01 +0000 (22:08 +1100)]
Tidy up TestClientTransfer
Matt Joiner [Sun, 21 Feb 2016 06:25:47 +0000 (17:25 +1100)]
Off by one error in torrent.pieceLength?
Matt Joiner [Sun, 21 Feb 2016 06:25:26 +0000 (17:25 +1100)]
Add peer_protocol.Integer.Int()
Matt Joiner [Sun, 21 Feb 2016 06:24:59 +0000 (17:24 +1100)]
Refresh all piece completion states when data is missing
Matt Joiner [Sun, 21 Feb 2016 06:22:55 +0000 (17:22 +1100)]
Choke peers when we lose pieces they requested, and drop them if they request pieces we don't have
Matt Joiner [Sat, 20 Feb 2016 16:33:39 +0000 (03:33 +1100)]
Fix race updating piece priority when piece being read is unexpectedly unavailable
Matt Joiner [Sat, 20 Feb 2016 16:32:59 +0000 (03:32 +1100)]
Move dataReadAt to torrent.readAt, and do the waitNoPendingWrites check there
Matt Joiner [Sat, 20 Feb 2016 16:31:50 +0000 (03:31 +1100)]
Ditch the torrent stateMu for the client mutex
Matt Joiner [Sat, 20 Feb 2016 03:41:04 +0000 (14:41 +1100)]
Code comment
Matt Joiner [Sat, 20 Feb 2016 03:40:55 +0000 (14:40 +1100)]
Improve log message
Matt Joiner [Sat, 20 Feb 2016 03:40:28 +0000 (14:40 +1100)]
Use new error handling philosophy
Matt Joiner [Sat, 20 Feb 2016 03:39:56 +0000 (14:39 +1100)]
Export torrent.String to Torrent
Matt Joiner [Thu, 18 Feb 2016 00:45:31 +0000 (11:45 +1100)]
Ditch Data.WriteSectionTo, and fix cmd/torrent-verify
Matt Joiner [Wed, 17 Feb 2016 07:26:10 +0000 (18:26 +1100)]
Rework Reader reading, and TestCompletedPieceWrongSize
Matt Joiner [Wed, 17 Feb 2016 06:58:20 +0000 (17:58 +1100)]
data/file: Return EOF on reads past end
Matt Joiner [Wed, 17 Feb 2016 06:21:03 +0000 (17:21 +1100)]
Avoid error message when we attempt to complete a piece that's already complete
Matt Joiner [Wed, 17 Feb 2016 06:20:43 +0000 (17:20 +1100)]
Remove pointless code
Matt Joiner [Wed, 17 Feb 2016 06:20:21 +0000 (17:20 +1100)]
Ensure piece completion state is correct at startup
Matt Joiner [Wed, 17 Feb 2016 06:10:34 +0000 (17:10 +1100)]
data/pieceStore: Incorrectly public PieceCompleted method
Matt Joiner [Wed, 17 Feb 2016 06:09:43 +0000 (17:09 +1100)]
Code comments
Matt Joiner [Wed, 17 Feb 2016 06:09:05 +0000 (17:09 +1100)]
Add a test for starting a torrent where pieces are already complete
Matt Joiner [Wed, 17 Feb 2016 06:08:01 +0000 (17:08 +1100)]
Rename issue 35 testing config function to avoid confusion
Matt Joiner [Tue, 16 Feb 2016 13:00:55 +0000 (00:00 +1100)]
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.
Matt Joiner [Tue, 16 Feb 2016 12:35:19 +0000 (23:35 +1100)]
Improve error message when piece fails to be completed
Happens occasionally on some servers, can't work out why.
Matt Joiner [Mon, 15 Feb 2016 06:47:04 +0000 (17:47 +1100)]
Only assert we should be requesting a piece in debug mode
Matt Joiner [Sun, 14 Feb 2016 20:22:36 +0000 (07:22 +1100)]
Merge pull request #64 from robaman/master
Retain query parameters from announce URL.
Robert Kästel [Sun, 14 Feb 2016 20:15:51 +0000 (21:15 +0100)]
Retain query parameters from announce URL.
Matt Joiner [Thu, 11 Feb 2016 06:57:57 +0000 (17:57 +1100)]
Trigger piece request order changes on connections in a few spots
The client was requesting already obtained data in certain circumstances. This fixes it.
Matt Joiner [Tue, 9 Feb 2016 13:48:23 +0000 (00:48 +1100)]
Use Cache.StatFile to get piece length in the backend
Matt Joiner [Tue, 9 Feb 2016 13:47:53 +0000 (00:47 +1100)]
Still update a connections piece priority even if the peer doesn't have the piece
Matt Joiner [Tue, 9 Feb 2016 13:46:54 +0000 (00:46 +1100)]
torrent.piecePartiallyDownloaded incorrectly returned true when all the chunks were dirty
Matt Joiner [Tue, 9 Feb 2016 13:45:47 +0000 (00:45 +1100)]
Track posted message type counts
Matt Joiner [Mon, 8 Feb 2016 10:39:15 +0000 (21:39 +1100)]
When we're choked, just forget the requests, we don't need to delete them individually anymore
Matt Joiner [Mon, 8 Feb 2016 10:38:30 +0000 (21:38 +1100)]
Add some missing calls to torrent.updatePiecePriority
Matt Joiner [Mon, 8 Feb 2016 10:36:50 +0000 (21:36 +1100)]
Fix pending of already completed pieces when pending ranges of pieces
Matt Joiner [Mon, 8 Feb 2016 05:09:12 +0000 (16:09 +1100)]
Reintroduce 64 outbound request cap
Matt Joiner [Sun, 7 Feb 2016 16:01:54 +0000 (03:01 +1100)]
Remove unreachable code
Matt Joiner [Sun, 7 Feb 2016 10:58:48 +0000 (21:58 +1100)]
Rework requesting of shuffled pending pieces
Matt Joiner [Sun, 7 Feb 2016 10:57:57 +0000 (21:57 +1100)]
Export Torrent.PieceState()
Matt Joiner [Sun, 7 Feb 2016 10:56:59 +0000 (21:56 +1100)]
Fix overpublishing of piece state change during hashing
Matt Joiner [Sun, 7 Feb 2016 10:55:47 +0000 (21:55 +1100)]
Export PieceStateChange through piece state change pubsub
Matt Joiner [Sun, 7 Feb 2016 07:49:35 +0000 (18:49 +1100)]
Use new tracker package interface
Matt Joiner [Sun, 7 Feb 2016 07:06:13 +0000 (18:06 +1100)]
tracker: Shoehorn old client implementations into new tracker Announce interface
Matt Joiner [Sun, 7 Feb 2016 06:45:46 +0000 (17:45 +1100)]
tracker: Rename response->httpResponse
Matt Joiner [Sun, 7 Feb 2016 06:16:01 +0000 (17:16 +1100)]
Prefix the Action constants
In preparation to rework the client interface
Matt Joiner [Sun, 7 Feb 2016 06:15:06 +0000 (17:15 +1100)]
Reinstate File.PrioritizeRegion() for backward compatibility
Matt Joiner [Sat, 6 Feb 2016 14:22:31 +0000 (01:22 +1100)]
Use new missinggo iterator style, and speed up torrent.connHasWantedPieces()
Matt Joiner [Sat, 6 Feb 2016 14:21:12 +0000 (01:21 +1100)]
Publish changes in piece hashing state
Matt Joiner [Sat, 6 Feb 2016 14:20:40 +0000 (01:20 +1100)]
Speed up torrent.needData, and use new missinggo iterator interface
Matt Joiner [Fri, 5 Feb 2016 04:45:32 +0000 (15:45 +1100)]
Use missinggo.bitmap for tracking dirty chunks
Matt Joiner [Fri, 5 Feb 2016 04:42:23 +0000 (15:42 +1100)]
tracker: Rename the http client type to httpClient
Matt Joiner [Thu, 4 Feb 2016 14:20:02 +0000 (01:20 +1100)]
missinggo.ZeroReader is now a var, not a type
Matt Joiner [Thu, 4 Feb 2016 14:19:42 +0000 (01:19 +1100)]
Changes to piece priority need to be published as a piece state change
This occurs because we're now able to deprioritize pieces after readers seek or close
Matt Joiner [Thu, 4 Feb 2016 14:18:54 +0000 (01:18 +1100)]
Add File.Cancel
Matt Joiner [Thu, 4 Feb 2016 14:17:26 +0000 (01:17 +1100)]
Missing Reader.Close in some tests
Matt Joiner [Thu, 4 Feb 2016 14:17:06 +0000 (01:17 +1100)]
Fix the mess that is the connectionLoop after messages are decoded
Matt Joiner [Thu, 4 Feb 2016 04:04:46 +0000 (15:04 +1100)]
Tidy code
Matt Joiner [Mon, 1 Feb 2016 17:45:57 +0000 (04:45 +1100)]
Fix bug in readahead
Matt Joiner [Mon, 1 Feb 2016 13:45:26 +0000 (00:45 +1100)]
connection.Close must be called under the Client lock
Matt Joiner [Mon, 1 Feb 2016 13:44:29 +0000 (00:44 +1100)]
go vet
Matt Joiner [Mon, 1 Feb 2016 11:06:13 +0000 (22:06 +1100)]
Recalculate all piece priorities more efficiently
Matt Joiner [Mon, 1 Feb 2016 10:11:41 +0000 (21:11 +1100)]
Reintroduce connection piece inclinations, and begin caching piece priorities
Matt Joiner [Mon, 1 Feb 2016 10:09:25 +0000 (21:09 +1100)]
Export leecher and seeder in TestClientTransfer
Matt Joiner [Mon, 1 Feb 2016 10:08:52 +0000 (21:08 +1100)]
Use missinggo.Event for connection closing event
Matt Joiner [Sun, 31 Jan 2016 20:05:43 +0000 (07:05 +1100)]
newTorrent doesn't need to return error
Matt Joiner [Sun, 31 Jan 2016 14:46:28 +0000 (01:46 +1100)]
Abstract the pendingPieces as a bitmap
Matt Joiner [Sun, 31 Jan 2016 08:04:15 +0000 (19:04 +1100)]
Begin tracking use of file descriptors in UDP tracker
Matt Joiner [Sun, 31 Jan 2016 07:35:51 +0000 (18:35 +1100)]
util/profile was replaced by github.com/anacrolix/envpprof
Matt Joiner [Sun, 31 Jan 2016 07:35:23 +0000 (18:35 +1100)]
util/levelmu is no longer in use
Matt Joiner [Sun, 31 Jan 2016 07:35:08 +0000 (18:35 +1100)]
TODO
Matt Joiner [Fri, 29 Jan 2016 18:19:39 +0000 (05:19 +1100)]
Obsolete NOTES file