Commit Graph

1034 Commits

Author SHA1 Message Date
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
Matt Joiner 26fa2c4af8 Track posted message type counts 2016-02-10 00:45:47 +11:00
Matt Joiner 317783091d When we're choked, just forget the requests, we don't need to delete them individually anymore 2016-02-08 21:39:15 +11:00
Matt Joiner c674e0a65f Add some missing calls to torrent.updatePiecePriority 2016-02-08 21:38:30 +11:00
Matt Joiner 24b8b13d2d Fix pending of already completed pieces when pending ranges of pieces 2016-02-08 21:36:50 +11:00
Matt Joiner 3df7d61836 Reintroduce 64 outbound request cap 2016-02-08 16:09:12 +11:00
Matt Joiner dab95b5431 Remove unreachable code 2016-02-08 03:01:54 +11:00
Matt Joiner 623d9e0e06 Rework requesting of shuffled pending pieces 2016-02-07 21:58:48 +11:00
Matt Joiner 54b538d322 Export Torrent.PieceState() 2016-02-07 21:57:57 +11:00
Matt Joiner 096c870029 Fix overpublishing of piece state change during hashing 2016-02-07 21:56:59 +11:00
Matt Joiner dc215d083e Export PieceStateChange through piece state change pubsub 2016-02-07 21:55:47 +11:00
Matt Joiner 0c28a0f1b1 Use new tracker package interface 2016-02-07 18:49:35 +11:00
Matt Joiner f04af72757 tracker: Shoehorn old client implementations into new tracker Announce interface 2016-02-07 18:06:13 +11:00
Matt Joiner 4587f61074 tracker: Rename response->httpResponse 2016-02-07 17:45:46 +11:00
Matt Joiner 077ffaaf40 Prefix the Action constants
In preparation to rework the client interface
2016-02-07 17:16:01 +11:00
Matt Joiner 7ac5dfd828 Reinstate File.PrioritizeRegion() for backward compatibility 2016-02-07 17:15:06 +11:00
Matt Joiner 77d6e9e5cb Use new missinggo iterator style, and speed up torrent.connHasWantedPieces() 2016-02-07 01:22:31 +11:00
Matt Joiner 814daf6420 Publish changes in piece hashing state 2016-02-07 01:21:12 +11:00
Matt Joiner 2e3bc1090b Speed up torrent.needData, and use new missinggo iterator interface 2016-02-07 01:20:40 +11:00
Matt Joiner 1b8bc1498c Use missinggo.bitmap for tracking dirty chunks 2016-02-05 15:45:32 +11:00
Matt Joiner 1ea9beb802 tracker: Rename the http client type to httpClient 2016-02-05 15:42:23 +11:00
Matt Joiner 95aa411699 missinggo.ZeroReader is now a var, not a type 2016-02-05 01:20:02 +11:00
Matt Joiner 6942f3e6d5 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
2016-02-05 01:19:42 +11:00
Matt Joiner 63c73e18b3 Add File.Cancel 2016-02-05 01:18:54 +11:00
Matt Joiner b4f04ddc61 Missing Reader.Close in some tests 2016-02-05 01:17:26 +11:00
Matt Joiner 9b9a3fb20a Fix the mess that is the connectionLoop after messages are decoded 2016-02-05 01:17:06 +11:00
Matt Joiner 3acdcc3b45 Tidy code 2016-02-04 15:04:46 +11:00
Matt Joiner 89f23c226c Fix bug in readahead 2016-02-02 04:45:57 +11:00
Matt Joiner 19a304b8ea connection.Close must be called under the Client lock 2016-02-02 00:45:26 +11:00
Matt Joiner 0e85ff190d go vet 2016-02-02 00:44:29 +11:00
Matt Joiner 430f26f726 Recalculate all piece priorities more efficiently 2016-02-01 22:06:13 +11:00
Matt Joiner afa264e6c5 Reintroduce connection piece inclinations, and begin caching piece priorities 2016-02-01 21:11:41 +11:00
Matt Joiner b8e9ef4be2 Export leecher and seeder in TestClientTransfer 2016-02-01 21:09:25 +11:00
Matt Joiner 3ed628356b Use missinggo.Event for connection closing event 2016-02-01 21:08:52 +11:00