1338 Commits

Author SHA1 Message Date
Neil Alexander
ee21c56e43 Fix setting nodeinfo (closes #954) 2022-10-15 15:42:52 +01:00
Neil Alexander
69632bacb5 Tidy up 2022-10-02 13:20:39 +01:00
Neil Alexander
428d2375da Don't allow configuring the same peer more than once 2022-10-02 12:39:18 +01:00
Neil Alexander
8cf76f841d Silence already connected to this node 2022-10-02 12:36:51 +01:00
ehmry
7db934488e
Reimplement AddPeer and RemovePeer for admin socket (#951)
* Reimplement AddPeer and RemovePeer for admin socket

Fix #950

* Disconnect the peer on `removePeer`

Co-authored-by: Neil Alexander <neilalexander@users.noreply.github.com>
2022-10-02 12:35:43 +01:00
Neil Alexander
c922eba2d8
Fix sending arguments to the admin socket in yggdrasilctl 2022-09-24 21:28:09 +01:00
Neil Alexander
d9fe6f72ac
Lint tweaks 2022-09-24 17:05:44 +01:00
Neil Alexander
d24d3fa047
Use deadline for link handshake (#949)
This uses a 6 second deadline for timeouts instead of using `util.FuncTimeout` at 30 seconds for the read and then again for the write.

If the handshake doesn't complete within 6 seconds then it's going to probably collapse when we give the connection to Ironwood and it tries to do a keepalive anyway.
2022-09-24 16:51:31 +01:00
Neil Alexander
e165b1fa0c
Add quote marks to InterfacePeers comment
Fixes #945.
2022-09-24 14:44:50 +01:00
Neil Alexander
01c44a087b
Rename tuntap package to tun
We haven't had TAP support in ages.
2022-09-24 14:41:47 +01:00
Neil Alexander
217ac39e77
Allow setting default config path and AdminListen at compile time
By providing the following items to `LDFLAGS`:

* `-X github.com/yggdrasil-network/yggdrasil-go/src/defaults.defaultConfig=/path/to/config`
* '-X github.com/yggdrasil-network/yggdrasil-go/src/defaults.defaultAdminListen=unix://path/to/sock'

Closes #818.
2022-09-24 14:09:08 +01:00
Neil Alexander
0abfe78858
Silence error when reconnecting to already connected peer 2022-09-24 13:46:22 +01:00
Neil Alexander
b67c313f44
Admin socket and yggdrasilctl improvements
This refactors the request parsing, as well as improving the output for some request types. It also tweaks `yggdrasilctl` output, which should help with #947.
2022-09-24 12:22:38 +01:00
Neil Alexander
5ef61faeff
Link refactor (#941)
* Link refactoring

* More refactoring

* More tweaking

* Cleaner shutdowns, UNIX socket support, more tweaks

* Actorise links, remove mutex

* SOCKS support
2022-09-17 20:07:00 +01:00
Neil Alexander
dc9720e580 Extend getSessions admin call to include uptime/TX/RX 2022-09-03 16:55:57 +01:00
Neil Alexander
5477566fa9 Length not capacity 2022-09-03 12:38:42 +01:00
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 ebe366ef3bcb1b22a31225b06d140d013e463647.
2021-08-07 12:56:36 -05:00