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
Neil Alexander
429189d11d
Use 'curve25519' instead of 'pubkey'
2020-02-16 23:44:20 +00:00
Neil Alexander
6b0b704645
Update comments
2020-02-16 23:30:47 +00:00
Neil Alexander
d16505e417
Update CKR
2020-02-16 23:26:18 +00:00
Neil Alexander
63936c11b5
Update tuntap module, return pointers
2020-02-16 23:21:58 +00:00
Neil Alexander
c107f891d2
Implement pubkeys in API functions
2020-02-16 23:12:39 +00:00
Arceliar
657777881b
actually schedule the search cleanup code to run
2020-02-08 20:33:35 -06:00
Arceliar
8e05c6c6a7
better search cleanup, but needs more testing to make sure it really works
2020-02-08 20:26:37 -06:00
Arceliar
d0e6846173
work in progress to make searches use parallel threads per response, so one malicious node doesn't block progress from honest ones
2020-02-08 20:15:48 -06:00
Arceliar
d7d0c2629c
don't deduplicate search responses, but limit the max number of nodes handled per response
2020-02-08 17:04:00 -06:00
Arceliar
cd9613fddc
add some additional debug timing info and logging to dials, and fix an unnecessary delay in search startup
2020-02-07 22:34:54 -06:00
Arceliar
3faa0b2854
deduplicate the list of nodes to visit in a search (keeping newest rumors)
2020-02-06 20:47:53 -06:00
Arceliar
7c2cb9a02d
more search fixes/updates
2020-02-06 20:21:17 -06:00
Arceliar
cd856426e5
search timing changes
2020-02-06 18:37:58 -06:00
Arceliar
70659bfb91
sort search response results before sending requests
2020-02-06 17:38:42 -06:00
Arceliar
7e64f54c1f
log some info about searches and reduce search traffic (especially when things dead-end)
2020-02-01 13:58:08 -06:00
Neil Alexander
c48c4ddc80
Merge pull request #641 from Arceliar/misc
...
Misc tuning
2020-01-10 11:35:51 +00:00
Neil Alexander
2fc6f9a71d
Merge pull request #643 from adamruzicka/mtu
...
Unify MTU datatypes across the codebase
2020-01-07 22:39:38 +00:00
Neil Alexander
ef4d5553b6
Merge pull request #636 from cathugger/develop
...
util: fix possible OOB in IPv4 flowkey calc, use switch there
2020-01-07 22:38:31 +00:00
Arceliar
c3b1a6af65
some nodeinfo actor fixes and adjust search timeout
2020-01-06 18:37:43 -06:00
Neil Alexander
8c12fc4fdb
Merge branch 'develop' into misc
2020-01-05 23:04:51 +00:00
Neil Alexander
9304873047
Convert nodeinfo to actor
2020-01-05 22:15:52 +00:00
Adam Ruzicka
8358fe5c5c
Unify MTU datatypes across the codebase
...
The codebase uses int and unit16 to represent MTU randomly. This change
unifies it to a MTU type from types package, which is currently uint16.
2020-01-05 18:01:22 +00:00
Arceliar
8513f8f4dc
constant space searches that should play nicer if searching for an unreachable destination
2020-01-04 16:08:48 -06:00
Arceliar
201dbec63d
always keep the 2 closest nodes in each direction around the dht ring, possibly helps things recover faster after joins/leaves
2019-12-25 19:01:20 -06:00
Arceliar
9fac5355eb
make searches more parallel
2019-12-25 18:55:29 -06:00
cathugger
ff5de89762
util: fix possible OOB in IPv4 flowkey calc, use switch there
...
ihl may grow upto 15*4=60 so extract and check it before using it as offset in flowkey calculation.
also replace IFs with switches for protocol matching as it's less redundant and nicer to document.
2019-12-11 15:24:43 +02:00
Anatolii Kurotych
4159ccb893
Fix return value in Multicast.Stop()
2019-11-30 16:05:44 +02:00
Arceliar
729d2ca2ba
Update crypto.go
2019-11-29 17:14:27 -06:00
Dimitris Apostolou
73f50af3b7
Fix typos
2019-11-29 11:45:02 +02:00
Arceliar
c2a8b4bb57
get rid of an allocation in tunWriter's _write
2019-11-28 12:00:00 -06:00
Neil Alexander
ad8d30ce74
Revert "Force packets through the switch to be buffered (seems to help the reordering problem on Windows)"
...
This reverts commit 837e7da792
.
2019-11-26 09:44:35 +00:00
Neil Alexander
328dd6c054
Merge branch 'develop' into goodbyewater
2019-11-26 09:20:15 +00:00
Arceliar
98339cdc3f
possible fix if monotonic time resolution is related to packet reordering
2019-11-25 17:40:58 -06:00
Neil Alexander
837e7da792
Force packets through the switch to be buffered (seems to help the reordering problem on Windows)
2019-11-25 20:13:41 +00:00
Arceliar
3e07995518
it helps to actually set the flag...
2019-11-24 18:53:58 -06:00
Arceliar
27cc57dbbc
attempt to prevent incorrect idle notification in switch, needs testing
2019-11-24 18:24:17 -06:00
Arceliar
2e95a3131c
comment out pointless error that prints on some platforms and not others
2019-11-24 15:37:37 -06:00
Arceliar
2982b53555
make offset generic over TUN_OFFSET_BYTES so we can make this platform dependent
2019-11-24 15:09:28 -06:00
Arceliar
f6f9b3ef76
include offset in expected bytes written
2019-11-24 15:01:20 -06:00
Arceliar
6560aac1e9
fix error spam on shutdown
2019-11-24 13:42:56 -06:00
Neil Alexander
746fac6594
Fix go.mod/go.sum again and update DoAsSystem call
2019-11-23 13:56:48 +00:00
Neil Alexander
d0a307db97
Use Wireguard's DoAsSystem, fix build tags and go.mod/go.sum
2019-11-23 13:46:05 +00:00
Neil Alexander
0529910b01
Reuse GUID so Windows no longer keeps creating new networks each time Yggdrasil starts
2019-11-23 13:34:27 +00:00
Neil Alexander
baebaabc43
Fix typo
2019-11-22 20:16:24 +00:00
Neil Alexander
3a0870a448
Fix IfName 'auto' behaviour on Windows
2019-11-22 20:11:39 +00:00
Neil Alexander
f95ebeb821
Remove references to TAP
2019-11-22 20:08:19 +00:00
Neil Alexander
7d00206f4b
Update platform defaults, handling of 'auto' on Linux/Darwin
2019-11-22 20:07:08 +00:00
Neil Alexander
b27ada9191
Fix bad Name() calls
2019-11-22 18:39:27 +00:00
Neil Alexander
235b64345e
Configure addresses and MTUs, fix bugs
2019-11-22 18:34:43 +00:00
Neil Alexander
f5517acc81
Drop Water, use Wireguard tun library, drop TAP support
2019-11-22 16:43:50 +00:00
Arceliar
248a08b2f1
send a message to the sessions to update mtu instead of trying to update it directly
2019-11-21 19:23:44 -06:00
Neil Alexander
7c18c6806d
Further updates, notify sessions about updated MTU from API call
2019-11-21 09:54:36 +00:00
Neil Alexander
d1c445dc41
Thread safety for MTU API functions
2019-11-21 09:28:36 +00:00
Neil Alexander
e90be6f569
Add API functions for manipulating maximum session MTU, fix TUN/TAP to use that
2019-11-21 00:02:39 +00:00
Neil Alexander
d06c40ad19
Use existing constant
2019-11-20 22:40:48 +00:00
Neil Alexander
9fca3640f9
Fix couple of issues with MTU calculations
2019-11-20 22:11:52 +00:00
Arceliar
6b6a5a2906
Merge pull request #608 from neilalexander/mtu
...
Improve MTU handling
2019-11-19 19:37:25 -06:00
Arceliar
c0be481cde
Merge pull request #605 from wfleurant/src-version
...
Src version: return unknown not yggdrasilctl
2019-11-19 19:35:45 -06:00
Neil Alexander
f49d9de421
Fix setting up of MTU when value is outside of acceptable bounds, also account for ethernet headers in calculations, notify about clipping to stdout
2019-11-19 14:20:11 +00:00
Arceliar
5f1aea3636
fix deadlock when AddPeer fails
2019-11-12 21:01:32 -06:00
William Fleurant
49ba5bae17
yggdrasil: buildName should report unknown
2019-11-11 00:24:50 -05:00
Arceliar
6d3aefb825
fix a data race when an existing session's coords are updated in response to a successful search
2019-10-27 19:55:35 -05:00
Neil Alexander
cee28d11f8
Merge pull request #593 from Arceliar/bindtodevice
...
BindToDevice
2019-10-26 11:36:24 +01:00
Arceliar
710815fed5
add dummy functions for other platforms
2019-10-25 19:32:53 -05:00
Arceliar
cfc1e6b83d
fix a crash when shutting down if no multicast interfaces are configured
2019-10-25 18:40:09 -05:00
Arceliar
bcacfb0638
test adding BindToDevice to linux. if it works then we'll want to rethink slightly how we get the tcpContext on every platform, to make this compile everywhere and look a little cleaner
2019-10-25 18:33:23 -05:00
Arceliar
97a85e1d44
Merge pull request #583 from neilalexander/modules
...
Define module.Module interface
2019-10-24 21:48:05 -05:00
Neil Alexander
cd93969930
Fix isOpen for TUN/TAP actor
2019-10-24 23:37:39 +01:00
Neil Alexander
de3bdfa524
No longer use atomic for isOpen in multicast
2019-10-24 23:31:47 +01:00
Neil Alexander
d37133e311
Fix merge conflict from develop
2019-10-24 10:22:02 +01:00
Neil Alexander
5ca81f916e
Fix deadlocks
2019-10-24 09:54:57 +01:00
Neil Alexander
7341fcb9bc
Merge branch 'develop' into fix581
2019-10-24 09:29:29 +01:00
Neil Alexander
d58f88d29a
Update builds to Go 1.13 as this is required for TLS (apparently golang.org/x/crypto/ed25519 is not acceptable to the crypto/tls module and this prevents Yggdrasil from starting)
2019-10-24 09:28:09 +01:00
Neil Alexander
f784f33c2d
Backport fix for #581 from #583
2019-10-24 09:25:31 +01:00
Arceliar
c3dee478f5
fix ed25519 dependency for golang 1.12 and earlier, though we may want to update builds to 1.13 anyway...
2019-10-23 20:38:09 -05:00
Arceliar
996c6b4f47
add one TODO comment and run gofmt
2019-10-23 20:28:11 -05:00
Neil Alexander
cd77727c1e
Set TCP socket options before upgrading connection
2019-10-23 18:24:08 +01:00
Neil Alexander
6a22e6c9de
Initial connection upgrade/TLS peering support
2019-10-23 17:26:35 +01:00
Neil Alexander
337626a32c
Act multicast updates for safety
2019-10-23 11:12:51 +01:00
Neil Alexander
a072e063d8
Define module.Module interface, update admin/tuntap/multicast modules to comply with it, fix #581
2019-10-23 10:44:58 +01:00
Arceliar
ea085663ea
slight cleanup of dial's timeout
2019-10-21 20:52:16 -05:00