5
0
mirror of https://github.com/cwinfo/yggdrasil-go.git synced 2024-12-23 08:45:39 +00:00
Commit Graph

1372 Commits

Author SHA1 Message Date
Neil Alexander
9cdfd59476 Tidy up a bit, make sure to copy the private key at startup 2022-09-03 12:34:29 +01:00
Neil Alexander
a7d06e048a Refactor TUN setup (isolated config) 2022-09-03 12:20:57 +01:00
Neil Alexander
b1f61fb0a8 Refactor admin socket setup (isolated config) 2022-09-03 11:54:46 +01:00
Neil Alexander
493208fb37 Refactor multicast setup (isolated config, etc) 2022-09-03 11:42:05 +01:00
Neil Alexander
dad0b10dfe Move Core._applyOption 2022-09-03 10:51:44 +01:00
Neil Alexander
c6fe81b5d2
Admin socket and yggdrasilctl refactoring (#939) 2022-09-03 10:50:43 +01:00
Neil Alexander
4f2abece81
Fix panic in tcp.init for incorrectly formatted listen addresses 2022-09-01 16:56:42 +01:00
Karandashov Daniil
486ffebedd
Delete unused param (#935) 2022-08-29 20:40:19 +01:00
Neil Alexander
dd66e8a9c9
Merge branch 'develop' into neilalexander/refactor 2022-08-06 15:23:44 +01:00
Neil Alexander
16b8149052 No longer use ioutil which is deprecated 2022-08-06 15:21:21 +01:00
Neil Alexander
4c889703b1 Continue refactoring 2022-08-06 15:05:12 +01:00
Neil Alexander
5616b9fc84
Don't lose my work 2022-07-24 10:23:25 +01:00
Neil Alexander
8c454a146c
Silence incorrect linter warning 2022-07-07 18:19:15 +01:00
Neil Alexander
88a0a3e8fb
Fix data races in handleProto (observed by @majestrate) 2022-07-07 17:03:29 +01:00
Neil Alexander
41d890bb64 Run goimports 2022-04-17 18:02:25 +01:00
Neil Alexander
90f9be38c5 Fix lint errors 2022-04-17 17:56:54 +01:00
Neil Alexander
0c4c385885
Fix regression in Path MTU discovery
In the past we used to send back anything up to 900 bytes of the packet in the ICMPv6 Packet Too Big response, whereas now we seemingly only send back 40 bytes.

It turns out that sending back only the 40 bytes of IPv6 headers isn't enough for most operating systems to positively ID the flow to reduce the MTU. This PR updates it so that we can send up to 512 bytes instead (900 is probably excessive) — that should leave plenty of room for any number of IPv6 extension headers and the next protocol headers and some of the payload.

This seems to fix the problem in my testing.
2022-04-03 12:48:06 +01:00
Neil Alexander
2d2ad4692b
Restore uptime, bytes_sent and bytes_recvd to getPeers (#888)
* Restore `uptime`, `bytes_sent` and `bytes_recvd` to the admin API for peers

* Wrap conn in Yggdrasil instead, so not necessary to do so in Ironwood

* Shuffle struct for alignment
2022-02-01 13:37:45 +00:00
Tom
9f5cc0eecb
Make message clearer and downgrade (#812)
* Make message clearer and downgrade

* Differentiate between incoming and outgoing conn
2022-01-30 21:58:57 +00:00
Alex Kotov
87e936195e
Add some tests (#828)
* Add tests

* Add tests

* Add tests

* Add tests

* Fix code style

* Remove unnecessary tests
2021-11-04 08:05:53 +00:00
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