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
Matt Joiner
51b3374015
Add very tentative UPnP NAT traversal
...
Relates to #230
2018-01-25 13:14:20 +11:00
Matt Joiner
358c6c8649
cmd/torrent: Fix logging when progress bar and stderr are the same file
2018-01-25 13:12:46 +11:00
Matt Joiner
ddd1e90d45
Fix cmd/torrent -debug
2018-01-25 13:11:32 +11:00
Matt Joiner
9285470cc6
Improve some log messages
2018-01-25 13:10:52 +11:00
Matt Joiner
0b553b296f
Add File priorities
...
Fixes #220 .
2018-01-21 22:49:12 +11:00
Matt Joiner
696595a76e
Add comment explaining Torrent.requestStrategy
2018-01-12 12:24:51 +11:00
Matt Joiner
ed7e3f6ec0
Make Torrent.pendingPieces a priority bitmap in preparation for #220
2018-01-12 12:24:37 +11:00
Matt Joiner
e686523178
storage: Export NewSqlitePieceCompletion
2018-01-12 11:09:33 +11:00
Matt Joiner
d5e2d7ce99
storage: Don't check completion state on every write
2018-01-12 10:45:19 +11:00
Matt Joiner
f3ff3821ec
file storage: Report errors getting completion
2018-01-12 10:41:42 +11:00
Matt Joiner
78e23734d4
Clarify the PieceCompletion.Set method bool argument
2018-01-11 22:10:52 +11:00
Matt Joiner
a82c76defb
Update sqlite3 piece completion
2018-01-11 22:10:00 +11:00
Matt Joiner
89ea4c0e29
Fix mentions of TorrentDataOpener
2018-01-11 17:11:54 +11:00
Matt Joiner
fe9839f818
sortimports
2018-01-09 23:12:01 +11:00
Matt Joiner
09218898e9
Use NoSync with bolt storage and piece completion
...
Fixes terrible slowness on Linux.
2018-01-09 23:11:34 +11:00
Matt Joiner
6239a83bd6
Begin restructuring testutil to support testing torrents with various properties
2018-01-09 17:29:31 +11:00
Matt Joiner
659be3d366
Add some TODOs and tidy a test
2018-01-09 17:26:46 +11:00
Matt Joiner
8eb1a3effe
Screen negative pieces
...
Should fix #228 .
2018-01-09 17:26:01 +11:00
Denis
aa42704976
fixing wrong offset in request ( #226 )
2018-01-08 11:03:34 +11:00
Matt Joiner
554b8e3e0c
Improve comments on Config.{Upload,Download}RateLimiter
...
See #225
2018-01-07 20:31:10 +11:00
Matt Joiner
9626134211
File.offset wasn't applied to the reads on the Torrent
2018-01-07 19:26:24 +11:00
Matt Joiner
ff6f28f87c
Fix a log format string
2018-01-07 19:24:00 +11:00
Matt Joiner
7f48246119
Improve various File related doc comments
2018-01-07 11:57:02 +11:00
Matt Joiner
87a033e074
Readers obtained from File.NewReader should not readahead into other Files
...
Fixes #221 . Additionally Torrent.length is a pointer and isn't set until the info is available to avoid it defaulting to zero.
2018-01-06 23:15:41 +11:00
Matt Joiner
4d1451f979
Rename File.PrioritizeRegion to DownloadRegion
...
Fixes #223
2018-01-06 16:54:17 +11:00
Matt Joiner
2f616b9d8b
megacheck and staticcheck fixes
2018-01-06 16:53:40 +11:00
Matt Joiner
7b668237bc
cmd/torrent-pick: Close file Reader
2018-01-06 16:41:05 +11:00
Matt Joiner
23363506f5
Reader: Changing responsiveness should wake blocked reads
2018-01-06 16:40:35 +11:00
Matt Joiner
57fec52371
mmap_span: Synchronize access to memory maps to avoid race when unmapping
2018-01-06 16:39:52 +11:00