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

455 Commits

Author SHA1 Message Date
Matt Joiner
e3cb94006c Reinstate the reduce dial timeout and update some values
Fixes #263
2018-07-10 11:19:14 +10:00
Matt Joiner
316640f921 Fix panic when failing to parse tracker URL 2018-07-07 11:35:47 +10:00
Matt Joiner
b2117bc571 Use timers for duplicate requests
Nothing was triggering request updates when timeouts expired. This is the simplest fix, no performance considered.
2018-06-30 00:10:31 +10:00
Matt Joiner
8255194c64 Fix racy Torrent.wantConns check when adding connections 2018-06-26 20:47:21 +10:00
Matt Joiner
c921242f30 Do requests synchronously, and don't request from hashing or queued pieces
Calculating the desired state was a nice idea, but too hard to debug. This way should also be faster.
2018-06-26 14:51:55 +10:00
Matt Joiner
7dd532d46f Check that chunks we request aren't being hashed or queued for hash 2018-06-26 13:04:15 +10:00
Matt Joiner
85dc3c204a Rework stats for receiving chunks
Related to #253.
2018-06-25 14:06:30 +10:00
Matt Joiner
195695042d Add requestStrategy 3, which duplicates requests only after a timeout
Possible solution for #253.
2018-06-24 20:04:31 +10:00
Matt Joiner
159c4a0e28 Ensure 64-bit alignment of ConnStats fields
Fixes #262.
2018-06-23 18:33:56 +10:00
Matt Joiner
96050948c2 Use scope timer in Torrent.writeChunk 2018-06-21 23:22:13 +10:00
Matt Joiner
4fafad46b2 Log and handle error with bad tracker URLs 2018-06-17 16:19:24 +10:00
Matt Joiner
174120e1e8 Rework Torrent pending requests assertions
Should provide more info, and sooner for #249.
2018-06-16 17:00:50 +10:00
Matt Joiner
0caafd8e87 Allow dropping connections to the same peer ID
Necessary for a test that expects one connection to each other Client.
2018-06-16 16:40:37 +10:00
Matt Joiner
0f90af85f1 Torrent.Stats: RLock instead of Lock 2018-06-16 16:38:14 +10:00
Matt Joiner
ad5e44eaf5 Add lots of new expvars and perf timers 2018-06-15 22:42:05 +10:00
Matt Joiner
90f84bda71 Allow adding duplicate connections
I believe this fixes a long-standing race condition when dropping connections to the same peer ID where Clients assume the peer has added connections in the same order. Further commits may address duplicate connections further.
2018-06-13 10:53:11 +10:00
Matt Joiner
224522545b Fix build error with recent go version 2018-06-12 21:51:34 +10:00
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