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

229 Commits

Author SHA1 Message Date
Matt Joiner
85dc3c204a Rework stats for receiving chunks
Related to #253.
2018-06-25 14:06:30 +10:00
Matt Joiner
0330b87288 Drop connections that send chunks we shouldn't receive 2018-06-24 20:35:46 +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
d2602c7935 Write received chunks that we don't have
Chunks were discarded if they belong to unprioritized pieces, even if those pieces were previously prioritized. May be contributing to #253.
2018-06-24 19:40:53 +10:00
Matt Joiner
ad03e64722 Retain interest if requests are outstanding and don't clear peer requests if they send not_interested
Apparent shortcomings found when trying new request algorithms.
2018-06-23 22:32:11 +10:00
Matt Joiner
159c4a0e28 Ensure 64-bit alignment of ConnStats fields
Fixes #262.
2018-06-23 18:33:56 +10:00
Matt Joiner
3a17708c78 Move chunk expvars into torrent prefix 2018-06-17 16:18:22 +10:00
Matt Joiner
4c471be802 Add connection.hasPreferredNetworkOver and friends 2018-06-16 17:14:47 +10:00
Matt Joiner
7a5aa2c42f Fix some formatting of ConnStats fields 2018-06-16 17:10:56 +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
e97f487d2e Rename Config->ClientConfig and change how defaults work
This is a very breaking change.
2018-06-16 16:30:04 +10:00
Matt Joiner
360e1dbdd1 Track ConnStats with atomics 2018-06-12 20:21:53 +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
3d680f8afc Update a link 2018-06-10 09:20:33 +10:00
Matt Joiner
9928914ecd Add some peer source comments 2018-04-12 15:12:29 +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
646622b8f1 Move clamp and max, and add min to misc.go 2018-02-16 12:14:15 +11:00
Matt Joiner
066cdd520b Add mse.CryptoMethod type 2018-02-16 10:36:29 +11:00
Matt Joiner
3f7eab00de Change some connection flag strings to avoid collision 2018-02-15 16:04:42 +11:00
Matt Joiner
35b224ba36 Add extra pedantic checks to requesting to try and flush out @deranjer's panics 2018-02-15 15:21:51 +11:00
Matt Joiner
d69cfbc419 Track IPv6 peers received over PEX and simplify the adding code 2018-02-15 14:43:57 +11:00
Matt Joiner
7dec0a196d Count errors returned from connection.mainReadLoop 2018-02-13 00:56:21 +11:00
Matt Joiner
70010ce691 Support IPv6 peers over PEX 2018-02-13 00:50:32 +11:00
Matt Joiner
57216bd299 Standardize on krpc types, and extend PEX message type for IPv6 2018-02-11 15:13:00 +11:00
Matt Joiner
5023dcaa3a Fixes for non-pointer Bitmap corrupting state 2018-02-08 15:08:33 +11:00
Matt Joiner
15ed1bbd69 Remove uploadChunksPosted expvar
Use messageTypesPosted.Piece
2018-02-07 13:57:50 +11:00
Matt Joiner
05da46ddbb Raise the nominal max requests for connections that download lots of useful chunks
Massive speed increases for some connections.
2018-02-05 18:49:55 +11:00
Matt Joiner
d5682e9cd0 Change a bunch of Stringer and status stuff
Cumulative interest time, download rate per connection, request low and high waters, peer extension bytes
2018-02-05 17:47:47 +11:00
Matt Joiner
93e8d9bfaa Use stringer to generate peer_protocol.MessageType strings 2018-02-05 15:30:35 +11:00
Matt Joiner
20316e5af4 Support AllowedFast and enable fast extension 2018-02-05 00:18:38 +11:00
Matt Joiner
b2860bad21 Fix the connection completed string if peer sent HaveAll 2018-02-04 22:43:28 +11:00
Matt Joiner
2e36ad19d9 Finish mainReadLoop on Torrent closed 2018-02-04 19:14:46 +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
64d13d86a6 Tickle sleeping writers when closing connections
This prevents them sleeping for an indefinite period (although something seemed to wake them eventually).
2018-02-03 15:44:03 +11:00
Matt Joiner
e1ea10fa2d Wasn't recording posted message stats 2018-02-03 15:29:06 +11:00
Matt Joiner
efecf88d3c Use flip buffering for connection writing 2018-02-03 15:09:38 +11:00
Matt Joiner
86aabb081c Share the post write buffer with the synchronous one in the connection writer
This should prevent messages posted while generating synchronous messages don't get out of order.
2018-02-03 14:40:03 +11:00
Matt Joiner
9b1a769bef Move extended message handling into its own method 2018-02-03 14:06:10 +11:00
Matt Joiner
738a75bc1c Prepare to support sending reject messages 2018-02-03 13:35:09 +11:00
Matt Joiner
f23d097502 Include closed connections in dirtiers 2018-02-03 12:08:16 +11:00
Matt Joiner
5fcb920f96 Use new logging in connection.go 2018-02-03 12:06:52 +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
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