Commit Graph

36 Commits

Author SHA1 Message Date
Arceliar
c1ae9ea0d4 Switch back to using an actor to manage link state, and slighty randomize the delay between multicast announcements. This seems to fix the issue with duplicate connections (and breaks a livelock in the multicast code where both nodes keep closing the listen side of their connection, but that's kind of a hack, we need a better solution) 2023-06-18 03:40:40 -05:00
Neil Alexander
333561f4e1
Tweak link state locking, add comments, listener priority, other fixes 2023-05-20 23:44:31 +01:00
Neil Alexander
e0b39b303f
Use regular mutex instead (less type assertions)
This reverts commit 5ba9dadc49.
2023-05-20 18:36:44 +01:00
Neil Alexander
5ba9dadc49
Use sync.Map instead of link actor 2023-05-20 18:31:01 +01:00
Neil Alexander
7afa23be4c
Link refactoring, admin socket changes 2023-05-19 19:09:05 +01:00
Arceliar
5e95246c26 update to ironwood v0.0.0-20230513191034-495699d87ae4 with API changes 2023-05-13 14:44:38 -05:00
Arceliar
e99c870d51 update admin functions and fix core tests 2023-03-26 16:49:40 -05:00
Neil Alexander
a148f4cfec
More updates for Ygg v0.5 2023-03-19 10:33:07 +00:00
Neil Alexander
83c1a810b5
New handshake, use softcrdt upstream 2023-03-18 12:14:32 +00:00
Neil Alexander
7efd66932f
Redial failed connections if possible (#983) 2022-11-12 11:30:03 +00:00
Neil Alexander
f08dec822a
Priority support (#964)
* Allow setting link priorities

* Fix a bug

* Allow setting priority on listeners and multicast interfaces

* Update `yggdrasilctl`

* Update to Arceliar/ironwood#5
2022-10-26 09:24:24 +01:00
Neil Alexander
9a9452dcc8 Fix panic in GetPeers that may happen mid-link setup 2022-10-25 18:58: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
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
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
493208fb37 Refactor multicast setup (isolated config, etc) 2022-09-03 11:42:05 +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
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
Alex Kotov
538ee13669
Add type core.AddHandlerFunc 2021-09-01 06:16:57 +05:00
Arceliar
3704ebf4cb fix debug rpcs and cleanup core.Close/core.Stop 2021-07-06 19:45:12 -05: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
Arceliar
b34c3230f8 fix core_test.go and a race in setting/using mtu 2021-06-13 13:40:20 -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
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
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
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
018f35d9a2 rename src/yggdrasil to src/core 2021-05-23 14:42:26 -05:00