Neil Alexander
|
d9fd68f18c
|
Fix build
|
2020-07-06 14:21:28 +01:00 |
|
Neil Alexander
|
a4a346c498
|
Merge branch 'develop' into future
|
2020-07-06 14:16:38 +01:00 |
|
George
|
48f008a8e2
|
Implement Core.RemovePeer method (#699) (#709)
Co-authored-by: George <zhoreeq@users.noreply.github.com>
|
2020-07-06 14:14:34 +01:00 |
|
Arceliar
|
3fded209df
|
try to fix some possible races with how peers are added/removed and how they're blocked in the switch when they enter a bad state
|
2020-06-06 12:30:54 -05:00 |
|
Arceliar
|
aec82d7a39
|
Merge pull request #702 from Arceliar/switch
Precompute more for the switch lookup table
|
2020-05-30 18:39:43 -05:00 |
|
Arceliar
|
a1856258a9
|
Merge pull request #704 from Arceliar/queues
Faster queue logic
|
2020-05-30 18:39:33 -05:00 |
|
Arceliar
|
35e7542889
|
Merge pull request #706 from Arceliar/buffers
More buffer fine-tuning
|
2020-05-30 18:39:24 -05:00 |
|
Arceliar
|
c83b070c69
|
remove old switch lookup functions
|
2020-05-30 13:12:49 -05:00 |
|
Arceliar
|
0f28862e99
|
remove unused sequence number from switch
|
2020-05-30 10:48:59 -05:00 |
|
Arceliar
|
5e170e22e1
|
more switch fixes
|
2020-05-30 10:47:54 -05:00 |
|
Arceliar
|
3dc2242712
|
fix handling of keepAliveTimer and blocked state in link.go
|
2020-05-30 10:32:15 -05:00 |
|
Arceliar
|
8775075c18
|
debugging
|
2020-05-27 19:35:19 -05:00 |
|
Arceliar
|
905c28f7b2
|
fix some issues with the rewritten switch lookup tables
|
2020-05-27 19:31:17 -05:00 |
|
Arceliar
|
1df305d31c
|
simplify how blocking is detected and packets are dequeued
|
2020-05-27 18:53:14 -05:00 |
|
Arceliar
|
09f9f4e8e4
|
use heap.Fix instead of heap.Remove + heap.Push when updating queues, this is theoretically faster
|
2020-05-25 20:09:57 -05:00 |
|
Arceliar
|
674d8b58b6
|
get things compiling again
|
2020-05-25 19:27:17 -05:00 |
|
Arceliar
|
152e9057a0
|
Merge branch 'develop' of https://github.com/yggdrasil-network/yggdrasil-go into future
|
2020-05-25 19:25:05 -05:00 |
|
Arceliar
|
85eec5ba8e
|
tcp ygg-over-ygg debug logging
|
2020-05-25 19:13:37 -05:00 |
|
Arceliar
|
8345ae1fa3
|
don't allow ygg tcp connections to/from a local ygg address
|
2020-05-25 19:08:04 -05:00 |
|
Arceliar
|
dbc3b9b4c4
|
Merge pull request #701 from Arceliar/buffers
More buffer fine-tuning
|
2020-05-25 16:30:43 -05:00 |
|
Arceliar
|
366a8ba3dd
|
Merge branch 'develop' of https://github.com/yggdrasil-network/yggdrasil-go into future
|
2020-05-25 16:28:12 -05:00 |
|
Neil Alexander
|
45810fa184
|
Merge pull request #703 from Arceliar/dht
Store less in the DHT
|
2020-05-25 22:18:00 +01:00 |
|
Arceliar
|
1f65ffb310
|
work-in-progress heap-based queue structure
|
2020-05-25 16:07:56 -05:00 |
|
Arceliar
|
761ae531cb
|
work-in-progress faster queue logic
|
2020-05-25 15:19:32 -05:00 |
|
Arceliar
|
eefabb5f9f
|
disregard nodes if they're unimportant, even if they're already in the DHT
|
2020-05-25 12:44:06 -05:00 |
|
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 |
|
Arceliar
|
15162ee952
|
fix a panic from a doubly closed channel in the simlink
|
2020-05-02 10:51:26 -05:00 |
|
Arceliar
|
12d448f6d5
|
Merge branch 'future' of https://github.com/yggdrasil-network/yggdrasil-go into sim
|
2020-05-02 10:40:00 -05:00 |
|
Arceliar
|
22526d89ec
|
Merge branch 'future' of https://github.com/yggdrasil-network/yggdrasil-go into sim
|
2020-05-02 10:09:03 -05:00 |
|
Arceliar
|
72afa05029
|
test dial/listen in the sim
|
2020-05-02 10:01:09 -05:00 |
|
Arceliar
|
6d89570860
|
eliminate most sync.Pool use, gives a safer but slightly slower interface
|
2020-05-02 06:44:51 -05:00 |
|
Arceliar
|
9c818c6278
|
work-in-progress on a new sim
|
2020-04-26 07:33:03 -05:00 |
|
Arceliar
|
9d0969db2b
|
prevent a hypothetical block on link message sending
|
2020-04-05 14:57:05 -05:00 |
|
Arceliar
|
09efdfef9a
|
fix bug in switch actor's cleanRoot, strict nonce handling at the session level, and add separate queues per stream to the packetqueue code
|
2020-04-03 19:26:48 -05:00 |
|
Arceliar
|
03a19997b8
|
Merge branch 'develop' of https://github.com/yggdrasil-network/yggdrasil-go into buffers
|
2020-04-03 00:33:01 -05:00 |
|
Arceliar
|
945930aa2c
|
WIP have peer actors queue packets, temporarily a single simple FIFO queue with head drop
|
2020-04-03 00:32:26 -05:00 |
|
Arceliar
|
7a314afb31
|
check if an error was returned by Core._init and return it if so
|
2020-03-31 18:14:20 -05:00 |
|
Arceliar
|
9834f222db
|
more work in progress actorizing the remaining parts of the switch
|
2020-03-29 19:01:50 -05:00 |
|
Arceliar
|
15b850be6e
|
fix deadlock when running updateTable in the switch
|
2020-03-29 01:38:32 -05:00 |
|
Arceliar
|
d47797088f
|
fix shutdown deadlock
|
2020-03-29 00:48:41 -05:00 |
|
Arceliar
|
e926a3be6d
|
work in progress actorizing core.peers and replacing switch worker with per-peer switch-generated lookupTable
|
2020-03-29 00:23:38 -05:00 |
|
Arceliar
|
16309d2862
|
Merge branch 'develop' of https://github.com/yggdrasil-network/yggdrasil-go into buffers
|
2020-03-28 21:10:34 -05:00 |
|
Arceliar
|
1ac3a18aab
|
Fix a typo in search.go's comments
|
2020-03-23 18:03:31 -05:00 |
|
Arceliar
|
a09a83530f
|
update search description in comments
|
2020-03-22 18:42:42 -05:00 |
|
Arceliar
|
b651e57203
|
allow searches to continue as long as the next hop is closer than the Nth closest node found so far where N is currently 16 instead of 1 (makes searches more reliable), and cache all intermediate search steps in the dht
|
2020-03-19 21:11:17 -05:00 |
|
Arceliar
|
4809879995
|
refactor switch code so calling lookupTable.lookup does most of the important work
|
2020-03-10 01:03:07 -05:00 |
|
Arceliar
|
cfd8641925
|
fix conflicts with memleak bugfix
|
2020-03-10 00:03:26 -05:00 |
|
Arceliar
|
8075a60900
|
possibly fix memory leak (if this works, i don't yet understand how the leak was happening originally)
|
2020-03-08 19:32:14 -05:00 |
|
Arceliar
|
f308e81bf3
|
in the switch, keep a separate set of queues per peer instead of a global queue
|
2020-02-18 20:13:39 -06:00 |
|
Neil Alexander
|
471fcd7fdf
|
Update doc.go dial example
|
2020-02-16 23:57:05 +00:00 |
|
Neil Alexander
|
6c731c4efc
|
Fix comment on LocalAddr
|
2020-02-16 23:45:11 +00:00 |
|