Matt Joiner
319e57d1c6
Rework conns to/and allow multiple DHT servers
...
This will help with #229 , and IPv6 support.
2018-04-12 11:41:07 +10:00
Matt Joiner
92f6209c5f
Prioritize pending nodes with BEP 40
2018-04-04 17:59:28 +10:00
Matt Joiner
8f7408b1f9
IPv6 tracker support
2018-02-19 16:19:18 +11:00
Matt Joiner
9513270c06
Trackers shown are just the enabled ones
2018-02-17 11:13:48 +11:00
Matt Joiner
377cb62da9
Make half-open connection limit more dynamic
2018-02-16 12:15:07 +11:00
Matt Joiner
dbb2936cdf
TODO
2018-02-16 11:03:21 +11:00
Matt Joiner
70010ce691
Support IPv6 peers over PEX
2018-02-13 00:50:32 +11:00
Matt Joiner
fadbd68d99
Count peers not added because of bad addresses and rearrange method
2018-02-08 23:55:28 +11:00
Matt Joiner
898e878c69
Aggressively wake Readers
2018-02-04 22:47:01 +11:00
Matt Joiner
44e44637bf
TODOs and comments
2018-02-04 19:14:07 +11:00
Matt Joiner
e0c2265cb0
Support sending HaveAll
2018-02-04 19:10:25 +11:00
Matt Joiner
ec7b90db45
connections should not be added if the Torrent is closed
2018-02-04 13:00:08 +11:00
Matt Joiner
ea8659c951
Move initiateConn and openNewConns onto Torrent
2018-02-04 12:59:23 +11:00
Matt Joiner
e67b85215c
Piece.everHashed is replaced by storageCompletionOk
2018-02-03 12:14:39 +11:00
Matt Joiner
f23d097502
Include closed connections in dirtiers
2018-02-03 12:08:16 +11:00
Matt Joiner
9567aa901c
Add missing increments to some stats
2018-02-03 11:53:11 +11:00
Matt Joiner
5a4e8cd4c5
Rename and rearrange some conn stats
2018-02-03 00:41:13 +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
8a43910e2d
connection.writer wasn't checking closed state
2018-02-02 13:36:18 +11:00
Matt Joiner
2166bf1ec0
Some changes to status output
2018-02-01 18:45:58 +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
1a7708b484
sortimports
2018-01-31 16:42:40 +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
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
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
1725fc9a36
Include torrent stats in status
2018-01-27 14:31:46 +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
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
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
9b718566ba
Add File.NewReader
...
Fixes #222
2018-01-06 16:37:13 +11:00
Matt Joiner
25cf92502d
Improve a log message
2017-12-28 23:58:07 +11:00
Matt Joiner
54a7d83c45
Log dropping of bad peers in debug mode only
2017-12-03 13:44:37 +11:00
Matt Joiner
27253eb0d0
Fix panic in Torrent.addrActive if there are closed connections
...
Fixes #214
2017-12-02 10:01:27 +11:00
Matt Joiner
47622fad36
Fix the Stats panic in #214
2017-12-02 09:58:08 +11:00
Matt Joiner
d77e939944
Synchronize access to storage
2017-12-01 23:09:07 +11:00
Matt Joiner
afa9d2ba28
Torrent.bytesLeft was taking a copy instead of pointer to Piece
2017-12-01 17:58:42 +11:00
Matt Joiner
2daa604eb2
Publish piece state changes after verifying piece
2017-12-01 14:03:05 +11:00
Matt Joiner
8f7720edb2
Merge commit '6ab65a49a8a72dea1a28968b2ab42a85fd4566ec'
...
# Conflicts:
# config.go
2017-11-08 20:23:15 +11:00
Matt Joiner
163a63f9a7
Torrent.Metainfo: Don't return incomplete metadata bytes
...
Fixes #208
2017-11-08 19:56:20 +11:00
Matt Joiner
3aa1e8f3ef
Add a test for behaviour after getting metadata_size and before GotInfo
...
#208
2017-11-08 19:31:10 +11:00