5
0
mirror of https://github.com/cwinfo/yggdrasil-go.git synced 2024-11-29 19:01:50 +00:00
Commit Graph

1352 Commits

Author SHA1 Message Date
Neil Alexander
4859accbb0 Fix panic in address.GetKey() (fixes #860) 2021-11-02 18:03:16 +00:00
Neil Alexander
99227b60ce Update CI to use Go 1.17, produce Apple Silicon builds (closes #844) 2021-09-28 11:02:15 +01:00
Arceliar
f92d812f3c
Merge pull request #822 from yggdrasil-network/sni
TLS Server Name Indication
2021-09-24 05:14:28 -05:00
Arceliar
6af9b61b15
Merge pull request #842 from Arceliar/mutex
Fix incorrect mutex use in ipv6rwc
2021-09-24 04:43:44 -05:00
Arceliar
f2d1eff8f6
Merge pull request #835 from kotovalexarian/test-and-refactor-proto-handler
Really tiny refactoring of "src/core"
2021-09-24 04:43:06 -05:00
Arceliar
e5d638ff4b better way to empty ipv6rwc buffer 2021-09-23 04:39:12 -05:00
Arceliar
86e5306eec fix race from mutex that wasn't held long enough 2021-09-23 04:35:31 -05:00
Arceliar
529a33034b gofmt to add new build comments 2021-09-23 04:34:58 -05:00
Fyodor Ustinov
52345a2de4
Check tun.config is not equal to nil before usage (#830)
We have to check tun.config is not nil before first use, not after.
2021-09-21 21:19:25 +01:00
Alex Kotov
571186ca77
Rename protohandler attributes 2021-09-03 01:45:30 +05:00
Alex Kotov
3c89781057
Align and reorder code for lesser diff 2021-09-01 07:58:11 +05:00
Alex Kotov
a5f2ba80a2
Organize code in "src/core/proto.go" 2021-09-01 07:50:03 +05:00
Alex Kotov
538ee13669
Add type core.AddHandlerFunc 2021-09-01 06:16:57 +05:00
Arceliar
3613614b41 Revert "Add IPReadWriteCloser interface"
This reverts commit ebe366ef3b.
2021-08-07 12:56:36 -05:00
Neil Alexander
ebe366ef3b Add IPReadWriteCloser interface 2021-08-07 10:17:21 +01:00
Neil Alexander
d1cd671bec Fix bug 2021-08-01 21:39:49 +01:00
Neil Alexander
bbdff033ce Update SNI code 2021-08-01 21:36:51 +01:00
Neil Alexander
f094cf34bf Set SNI by default if the peering URI contains a DNS name 2021-07-28 22:23:33 +01:00
Neil Alexander
d8df9755f2 Allow specifying TLS SNI with ?sni= in peering URI 2021-07-28 22:11:20 +01:00
Neil Alexander
52309d094c
Merge pull request #800 from yggdrasil-network/iprwc
Refactor PacketConn/ReadWriteCloser interfaces
2021-07-15 09:39:03 +01:00
Timur Demin
04ecdf6045
Preallocate memory when deriving address from key
This makes src/address.AddrForKey preallocate 32 bytes before starting
the address derivation. As benches in syg_go show, reallocating temp
takes 20% of the function runtime.
2021-07-08 16:04:43 +05:00
Arceliar
cd5383f7b7 fix core tests 2021-07-07 18:36:51 -05:00
Arceliar
3704ebf4cb fix debug rpcs and cleanup core.Close/core.Stop 2021-07-06 19:45:12 -05:00
Neil Alexander
e224c02d6d Revert "Add LocalAddr to complete net.PacketConn interface"
This reverts commit e4ce2c79a9.
2021-07-05 22:35:46 +01:00
Neil Alexander
e4ce2c79a9 Add LocalAddr to complete net.PacketConn interface 2021-07-05 22:26:09 +01:00
Arceliar
f990a56046 have the core wrap and export the underlying PacketConn, move IPv6 ReadWriteCloser wrapper logic to a separate package 2021-07-05 13:14:12 -05:00
Neil Alexander
9b28f725e2 Fix core_test.go 2021-06-28 18:28:56 +01:00
Neil Alexander
3646a8674c Yggdrasil v0.4.0rc4 2021-06-28 18:21:53 +01:00
Arceliar
de853fed10 multicast configuration changes 2021-06-27 17:24:46 -05:00
Arceliar
2874ce1327 change multicast config format 2021-06-27 03:15:41 -05:00
Arceliar
2a7a53b6b6 move GenerateConfig to defaults, to adjust dependency ordering, needed for stuff later 2021-06-27 02:18:51 -05:00
Arceliar
2db46c1250 make socks connect to tls listeners, TODO make that configurable 2021-06-25 21:40:19 -05:00
Arceliar
d1dfe38683 remove string from multicast announcement format 2021-06-25 21:27:29 -05:00
Arceliar
3b38ed082f make failed sends a debug log, instead of error 2021-06-25 21:15:40 -05:00
Neil Alexander
39361af789 Update config comments 2021-06-19 17:51:11 +01:00
Arceliar
b7f57c0617 use TLS for multicast peers, fix TLS listener type in log output 2021-06-19 10:42:38 -05:00
Arceliar
5564de94ba when using tls, if no pinned key is set, pin the key from the cert. require that cert keys match a pinned key 2021-06-19 09:53:11 -05:00
Arceliar
1bf751a474 update ironwood, only store 1 packet in the pre-session buffer 2021-06-19 07:44:37 -05:00
Arceliar
b34c3230f8 fix core_test.go and a race in setting/using mtu 2021-06-13 13:40:20 -05:00
Arceliar
cb81be94ec skip multicast packets sent from our own key 2021-06-13 12:31:52 -05:00
Arceliar
2726dc0076 don't return an error if the source address is wrong, since this happens very frequently for link-local traffic 2021-06-13 09:51:53 -05:00
Arceliar
c6a7a077a3 add remote URI to GetPeers (fallback to net.Conn.RemoteAddr().String() if the uri is unknown) 2021-06-13 09:25:08 -05:00
Arceliar
6c63b02385 Merge branch 'future' of https://github.com/yggdrasil-network/yggdrasil-go into future 2021-06-13 05:44:32 -05:00
Arceliar
8f91f0c050 fix nodeinfo and debug admin functions, this is ugly / a hack, but it works i guess... 2021-06-13 05:43:03 -05:00
Neil Alexander
c8938a3527 Add missing icmpv6.go 2021-06-13 11:34:59 +01:00
Arceliar
3393db8e77 move ICMP PacketTooBig sending into core 2021-06-13 05:25:13 -05:00
Arceliar
816356ea65 mostly finish migration of IP stuff to core, tuntap is still responsible for ICMP PacketTooBig 2021-06-13 04:54:06 -05:00
Arceliar
1147ee1934 WIP moving IP-specific checks from tuntap to core 2021-06-13 04:22:21 -05:00
Arceliar
91235980af fix logging for socks 2021-06-12 07:03:32 -05:00
Arceliar
eeadffe4a5 move position of log line on shutdown 2021-06-12 06:07:33 -05:00
Arceliar
5b6f730f18 keep a context in the core, use it for listen/dial, cancel it when closing 2021-06-12 06:06:39 -05:00
Arceliar
3815b13ad5 use DialContext 2021-06-12 05:58:14 -05:00
Neil Alexander
acdc3dd3c0 Replace ?ed25519= with ?key= in peering URIs 2021-06-11 21:12:27 +01:00
Arceliar
f7607557c1 fix nBytes check in multicast code 2021-06-06 04:48:00 -05:00
Arceliar
e7da3d72c4 remove session firewall, this can't prevent memory use so it's better to just use OS native tools 2021-06-06 02:35:02 -05:00
Neil Alexander
2e2566d248 Remove src/core/doc.go 2021-06-05 21:56:31 +01:00
Neil Alexander
4a684e7caf Don't add mutex to config output 2021-06-05 21:48:20 +01:00
Neil Alexander
ea15eeee7e Ensure PublicKey option is unused, map old config options 2021-06-05 21:32:04 +01:00
Neil Alexander
99973b2757 Remove module package, it didn't really give us anything anyway 2021-06-05 20:57:03 +01:00
Neil Alexander
cb536a7322 Clean up util package 2021-06-05 20:55:08 +01:00
Arceliar
414c100125 add public keys to multicast, public key pinning to multicast peering 2021-06-05 05:07:04 -05:00
Neil Alexander
ff751a5409 Fix lint error 2021-06-02 14:46:04 +01:00
Neil Alexander
8932ab0519 Fix lint errors 2021-06-02 14:40:09 +01:00
Neil Alexander
166336a418 Remove config.NodeState (hot reconfig is no longer supported) 2021-06-02 14:19:32 +01:00
Arceliar
978124dbb1 update dependency (ironwood), fix units in core benchmark 2021-05-31 06:39:53 -05:00
Arceliar
1db7437b80 more cleanup and fix a busyloop when the admin socket is shut down 2021-05-29 21:37:13 -05:00
Arceliar
e25ad9ed21 cleanup unused code 2021-05-29 20:42:06 -05:00
Arceliar
180654c495 possibly fix src/core/core_test.go 2021-05-29 11:13:59 -05:00
Arceliar
8a60c605f6 remove metric stuff, there's already enough new stuff to test, maybe revisit this in a future release 2021-05-24 18:53:54 -05:00
Arceliar
c60dd42baa cleanup 2021-05-23 21:51:09 -05:00
Arceliar
5f2bcaa71f add Listen to api and listenURL to tcp 2021-05-23 21:47:12 -05:00
Arceliar
fd5cda6329 read metric from urls for listen and peers 2021-05-23 20:58:34 -05:00
Arceliar
70c5b06286 use url.URL in place of string for most internal listen/peer address handling 2021-05-23 20:34:13 -05:00
Arceliar
58af92812e add metric to metadata exchange, but currently left at default 0 value 2021-05-23 18:40:36 -05:00
Arceliar
6bc2044ced update ironwood dependency, fix ansible code, go mod tidy 2021-05-23 17:52:10 -05:00
Arceliar
018f35d9a2 rename src/yggdrasil to src/core 2021-05-23 14:42:26 -05:00
Arceliar
0343dad934 remove obsolete crypto package 2021-05-23 14:33:28 -05:00
Arceliar
f69f02386d rename debug admin socket functions 2021-05-23 13:37:46 -05:00
Arceliar
e6f86a9bd7 cleanup proto admin socket response formats 2021-05-23 12:19:27 -05:00
Arceliar
29dda650b5 tun session protocol traffic cleanup 2021-05-23 11:58:52 -05:00
Arceliar
233cf0c962 add remote debugGetSelf and fix some return type things in the other debug functions 2021-05-22 21:27:11 -05:00
Arceliar
c7b004d36f get debugGetPeers and debugGetDHT working in the admin socket 2021-05-22 20:25:14 -05:00
Arceliar
8668abf481 WIP adding crawling debug packets 2021-05-22 19:54:52 -05:00
Arceliar
b11cf7a2f2 update ironwood dependency, fix api 2021-05-18 20:43:38 -05:00
Arceliar
8d09e68e80 admin socket getpaths 2021-05-16 16:16:58 -05:00
Arceliar
eb4a22724f possibly fix admin socket getnodeinfo 2021-05-16 15:55:30 -05:00
Arceliar
fad071ffe9 WIP on nodeinfo admin handler 2021-05-16 15:27:51 -05:00
Neil Alexander
058dec0cca Fix getself, gettuntap etc 2021-05-16 21:01:59 +01:00
Neil Alexander
31c1c9b586 Fix admin socket list 2021-05-16 20:53:40 +01:00
Neil Alexander
6413e95c48 Fix bug 2021-05-16 20:05:22 +01:00
Neil Alexander
62a13e87c4
Merge branch 'future' into cleanup 2021-05-16 20:02:28 +01:00
Neil Alexander
416eadbcff Use uint64 for MTU for forward-compatibility 2021-05-16 20:00:45 +01:00
Arceliar
a6c254c87a more nodeinfo WIP, still needs admin socket support 2021-05-16 14:00:37 -05:00
Arceliar
2e45e970c6 work-in-progress adding nodeinfo 2021-05-16 13:52:52 -05:00
Neil Alexander
2d01386d6e Refactor admin socket, export request/response structs, remove types package 2021-05-16 19:51:09 +01:00
Arceliar
2c7b22db92 allow for multiple traffic types inside the session at the tuntap level, only implement typeSessionTraffic for now 2021-05-16 13:01:54 -05:00
Arceliar
dfca87ba80 start a reader to disard traffic if the tun is disabled 2021-05-15 16:44:56 -05:00
Arceliar
f61507238e cleanup unused MTU code from tun keystore 2021-05-15 16:23:44 -05:00
Arceliar
5b00273dfc move sessionfirewall into the tuntap. this needs testing. the name is also slightly wrong, since a crypto session can still be set up, packets are just accepted/rejected at the tun/tap level instead 2021-05-15 15:55:47 -05:00
Arceliar
7e10025ef0 get minimal admin socket working (introspection only, no ability to add peers etc) 2021-05-15 15:16:35 -05:00