Commit graph

1427 commits

Author SHA1 Message Date
Arceliar
40bfd207f5 don't store every node we hear from in the DHT, only ones we already know about or that are important 2020-05-25 12:23:38 -05:00
Arceliar
f9bc0b7aee use a more elaborate precomputed lookup table from the switch 2020-05-25 11:49:25 -05:00
Arceliar
38dcbb1e2f cleaner way to handle seq/idle checks for the peer 2020-05-24 17:49:48 -05:00
Arceliar
4382368b08 make sure the peer isn't idle before entering drop mode 2020-05-24 17:43:35 -05:00
Arceliar
9574308545 have the peer delay setting a max buffer size, in case things have unblocked in the mean time 2020-05-24 17:35:49 -05:00
Arceliar
7778a47a8f fix darwin compile problem 2020-05-24 15:46:18 -05:00
Arceliar
98816f34b2 don't spam calls to net.Interfaces and net.Interface.Addrs (hopefully) 2020-05-24 15:24:39 -05:00
Arceliar
1e471e3712 back to master's version of multicast, lets try rewriting it again 2020-05-24 14:43:38 -05:00
Arceliar
c2d6e9e8f1 close listener when a multicast interface is removed 2020-05-24 14:09:06 -05:00
Arceliar
77ded84ea5 simplify routerInterface 2020-05-23 12:21:23 -05:00
Arceliar
f2b9e95895 simplify routerInterface 2020-05-23 12:21:01 -05:00
Arceliar
07206b5d46 resolve merge conflicts 2020-05-23 11:33:37 -05:00
Arceliar
169b8747d4
Merge pull request #696 from Arceliar/bugfix
Bugfix
2020-05-23 11:24:03 -05:00
Arceliar
7063ddcc73 slightly cleaner fix to conn String deadlock issue 2020-05-23 11:16:03 -05:00
Arceliar
bc48e4bb80 fix deadlock in conn (unsafe use of phony.Block) 2020-05-23 11:11:11 -05:00
Arceliar
59896f17fd more cleanup 2020-05-23 10:28:57 -05:00
Arceliar
ef1e506a0c work-in-progress on more cleanup 2020-05-23 10:23:55 -05:00
Arceliar
59c5644a52 some peer/link cleanup 2020-05-23 10:08:23 -05:00
Arceliar
cf2edc99d1 correctly set peer.max 2020-05-17 13:32:58 -05:00
Arceliar
d43b93f60a safer check for the queues if we're blocked on a send, should work even if we're blocked on a link packet send 2020-05-17 13:23:15 -05:00
Arceliar
ff3c8cb687 less aggresive queue size reduction 2020-05-17 12:58:57 -05:00
Arceliar
d96ae156a1 slight change to peer function names/args 2020-05-17 12:27:43 -05:00
Arceliar
7720e169f2 when we detect we're blocked, only drop packets often enough to make sure the existing queue's size is non-increasing, and always drop the worst packet from a random flow with odds based on the total size of packets queued for that flow 2020-05-17 12:09:40 -05:00
Arceliar
6e92af1cd2 re-enable a minimum queue size of ~1 big packet 2020-05-17 08:49:40 -05:00
Arceliar
0dcc555eab cleaner startup/shutdown of the link writer's worker 2020-05-17 08:34:22 -05:00
Arceliar
15ac2595aa use a dedicated per-stream writer goroutine, send messages to it over a 1-buffered channel, this eliminates most of the false positive blocking that causes drops 2020-05-17 08:22:02 -05:00
Arceliar
527d443916 move where the queue size check before dropping would occur 2020-05-17 07:21:09 -05:00
Arceliar
62b9fab5f8 more work-in-progress, debugging why things are dropping so often 2020-05-16 18:56:04 -05:00
Arceliar
b17a035a05 workarounds to dropping being too aggressive 2020-05-16 17:40:11 -05:00
Arceliar
b132560f65 it helps to actually run the notifyQueued stuff... 2020-05-16 17:24:26 -05:00
Arceliar
052de98f12 work-in-progress on buffering overhaul 2020-05-16 17:07:47 -05:00
Arceliar
dc128121e5 update switch blockPeer/unblockPeer logic and dht reset when coords change 2020-05-16 09:25:57 -05:00
Neil Alexander
f70b2ebcea
Fix bad check 2020-05-09 12:49:02 +01:00
Neil Alexander
2a2ad76479
Use maps instead of slices 2020-05-09 12:38:20 +01:00
Arceliar
433e392bdf Merge branch 'develop' of https://github.com/yggdrasil-network/yggdrasil-go into future 2020-05-09 06:13:52 -05:00
Neil Alexander
a59fd2a489
Merge branch 'develop' into neilalexander/pinning 2020-05-09 12:12:24 +01:00
Arceliar
7779d86c5b maybe fix multicast deadlock on darwin 2020-05-09 05:56:36 -05:00
Neil Alexander
13a2d99fdc
Set SOCKS peer addr to resolved address 2020-05-09 11:26:09 +01:00
Neil Alexander
8b180e941a
Add SOCKS proxy auth (closes #423) 2020-05-09 11:24:32 +01:00
Neil Alexander
58345ac198
Track proxy addr and real peer addr in SOCKS mode 2020-05-09 10:53:58 +01:00
Neil Alexander
fbf59184ee
Use query string instead, allow specifying multiple keys (might be useful for DNS RR) 2020-05-09 00:43:19 +01:00
Neil Alexander
e849b3e119
Initial support for pinning public keys in peering strings 2020-05-08 23:23:48 +01:00
Arceliar
107d9f0e8b Merge branch 'develop' of https://github.com/yggdrasil-network/yggdrasil-go into future 2020-05-03 05:20:30 -05:00
Arceliar
95f4ec52a4 save only the link-local addresses for multicast 2020-05-03 05:06:59 -05:00
Arceliar
de79401bb2 only call (net.Interface).Addrs() once per minute per interface 2020-05-03 02:50:04 -05:00
Arceliar
02e1cb180d possibly reduce multicast cpu usage even more 2020-05-02 17:23:20 -05:00
Neil Alexander
127b7e311c
Clean up a bit 2020-05-02 22:37:12 +01:00
Neil Alexander
0c7cf65d27
Move some logging back to debug 2020-05-02 22:33:25 +01:00
Neil Alexander
a115d18595
Refactor the multicast code a bit 2020-05-02 22:26:41 +01:00
Arceliar
20ef591013 fix some crashes with races during peer setup 2020-05-02 11:16:11 -05:00