Matt Joiner
5a4e8cd4c5
Rename and rearrange some conn stats
2018-02-03 00:41:13 +11:00
Matt Joiner
ffe778392c
request can be made from Reject and Cancel messages too
2018-02-02 23:56:06 +11:00
Matt Joiner
89b17c4372
Try to print something useful for MessageType panics
2018-02-02 21:52:57 +11:00
Matt Joiner
b610107d8d
Break up peer_protocol into several files
2018-02-02 21:29:57 +11:00
Matt Joiner
6441e98f62
Implement go vet recommendations
2018-02-02 19:28:09 +11:00
Matt Joiner
7a95714df2
Factor out connection.onReadRequest
2018-02-02 19:19:14 +11:00
Matt Joiner
fe991128ed
Rework connection stat reconciliation with Torrent and refactor doppleganger handling
2018-02-02 19:07:20 +11:00
Matt Joiner
b0c1f99509
Merge a bunch of stuff into ConnStats and refactor connection.upload
2018-02-02 19:04:56 +11:00
Matt Joiner
c9507786f2
Count requested chunk lengths
...
Have seen some very ridiculous lengths causing data read errors
2018-02-02 16:06:24 +11:00
Matt Joiner
8a43910e2d
connection.writer wasn't checking closed state
2018-02-02 13:36:18 +11:00
Matt Joiner
7b037cd024
Missed sendChunk invocation change
2018-02-02 13:34:35 +11:00
Matt Joiner
97ffe39561
Move sendChunk onto connection
2018-02-02 13:26:04 +11:00
Matt Joiner
186c5df3d3
When seeding, connections are not just useful when they're interested
...
Improves peer selection when seeding is enabled, we're still downloading.
2018-02-01 18:49:53 +11:00
Matt Joiner
2166bf1ec0
Some changes to status output
2018-02-01 18:45:58 +11:00
Matt Joiner
1e9f342a15
Merge piece and chunk iter inputs to nextRequestState
...
This will allow the iterator to filter chunks for request strategies.
2018-02-01 16:14:13 +11:00
Matt Joiner
3217c5012a
Code comments
2018-02-01 14:46:48 +11:00
Matt Joiner
9387e60999
Track concurrent requests across connections
...
In preparation for some more request strategy options
2018-02-01 14:46:03 +11:00
Matt Joiner
45aff24188
TestClientTransferRateLimitedUpload: Export client status
2018-02-01 14:43:57 +11:00
Matt Joiner
1a7708b484
sortimports
2018-01-31 16:42:40 +11:00
Matt Joiner
eb448d132d
Update context imports
2018-01-31 16:42:26 +11:00
Matt Joiner
64c40a45b4
Fix panic in benchmark caused by new logging
2018-01-29 19:16:55 +11:00
Matt Joiner
ceaf5a2360
Add some sanity checks to priorities extracted from Torrent.pendingPieces
2018-01-29 18:22:21 +11:00
Matt Joiner
50c1cdb601
Some test tidying and improvements
2018-01-29 18:22:21 +11:00
Matt Joiner
77806c1f49
More development of the new logging interface
2018-01-29 18:22:21 +11:00
Matt Joiner
ef4c0f1413
Add Torrent.Stats.ConnectedSeeders
...
Fixes #231
2018-01-29 18:22:21 +11:00
Matt Joiner
9a6f88b0fd
Update README.md
...
Few small nitpicks.
2018-01-28 18:43:16 +11:00
Matt Joiner
d6111a228c
Update README.md
...
Big changes to description, links, and downstream projects
2018-01-28 18:37:06 +11:00
Matt Joiner
04428fbdd1
Update README.md
...
Reorder the badges, I want to direct more people to the Gitter chat.
2018-01-28 17:43:28 +11:00
Matt Joiner
53e32ca9dd
Start using new log package
2018-01-28 16:07:11 +11:00
Matt Joiner
5ef22a978b
Synchronize piece completion on piece hash failure
...
Pieces that were unknown, remained unknown despite hashing for that very reason.
2018-01-28 16:02:14 +11:00
Matt Joiner
906d3bc5bb
Include completion known in PieceState
2018-01-28 15:58:55 +11:00
Matt Joiner
de928be582
Remove premature update to piece priority after piece is completed
...
This should have prevented Torrent.piecePriorityChanged from being called, meaning requests for the completed piece were not canceled, and the piece remained in connection's piece request queue, which meant wasted effort downloading chunks for an already acquired piece.
Thanks to @elgatito for discovering the issue.
2018-01-28 15:52:14 +11:00
Matt Joiner
e08d11a4b9
Update Client.newConnection with changed rateLimitedReader interface
2018-01-28 15:42:37 +11:00
Matt Joiner
00d9883ee0
Fix download rate limiter and add test
2018-01-28 15:28:45 +11:00
Matt Joiner
37272a391b
Avoid race in test
2018-01-27 14:31:46 +11:00
Matt Joiner
1f3eace72f
bencode: Add ignore_unmarshal_type_error tag
2018-01-27 14:31:46 +11:00
Matt Joiner
1725fc9a36
Include torrent stats in status
2018-01-27 14:31:46 +11:00
Matt Joiner
8c6d0440c2
Improve Torrent.BytesCompleted comment
2018-01-27 14:31:46 +11:00
Matt Joiner
704a0dd1fe
Update LICENSE
2018-01-27 11:21:33 +11:00
Matt Joiner
0e32592f78
bencode: Give more descriptive errors when failing to parse dicts
2018-01-25 21:46:50 +11:00
Matt Joiner
092b139dcf
Fix peer_protocol benchmark
2018-01-25 17:43:45 +11:00
Matt Joiner
692facdebb
Add TODO
2018-01-25 17:43:33 +11:00
Matt Joiner
95d535032e
Fix benchmark job in CI
2018-01-25 17:20:07 +11:00
Matt Joiner
52524925d2
Add separate piece priorities, and cache pending pieces
...
Should fix a bug where prioritizing files is not alone sufficient to trigger downloading.
2018-01-25 17:18:36 +11:00
Matt Joiner
e3c098441a
Add Torrent.setInfo
2018-01-25 17:10:37 +11:00
Matt Joiner
4807d05018
Improve some comments
2018-01-25 17:02:52 +11:00
Matt Joiner
21108bf6ec
Fix file piece index offset calculations
2018-01-25 17:01:29 +11:00
Matt Joiner
29aa07f1a9
Don't lock Client in File.DisplayPath
2018-01-25 16:58:49 +11:00
Matt Joiner
3f9a78e096
Run benchmarks in CI
2018-01-25 16:57:38 +11:00
Matt Joiner
d5f8440e7e
Add some helpful comments to type PeerID
2018-01-25 13:14:37 +11:00