2
0
mirror of synced 2025-02-24 14:48:27 +00:00

338 Commits

Author SHA1 Message Date
Matt Joiner
360e1dbdd1 Track ConnStats with atomics 2018-06-12 20:21:53 +10:00
Matt Joiner
a287d069a4 Fix crash adding peers when Torrent is closed 2018-06-12 20:17:15 +10:00
Matt Joiner
cea5584d6b Track outgoing through a new field on connection, and rework duplicate connection preferencing 2018-06-12 20:14:00 +10:00
Matt Joiner
ac6ba9f021 Add ConnStats at Client level
ConnStats management is refactored to make this less tedious.
2018-06-10 09:20:33 +10:00
Matt Joiner
df38775630 A few adjustments to prioritized peers usage 2018-04-14 21:44:41 +10:00
Matt Joiner
ed75065f76 Reinstate Uploaded and Downloaded values in tracker announces
Fixes followup comment in #71.
2018-04-12 16:12:14 +10:00
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