Commit Graph

76 Commits

Author SHA1 Message Date
Neil Alexander
d1b849588f Fix bug where ephemeral links would try to reconnect in a fast loop
Helps #1141, although not a complete solution.
2024-09-29 21:24:39 +01:00
Neil Alexander
c00779c7d3 Multicast interface detection and shutdown tweaks
May help with #1173.
2024-09-29 20:58:10 +01:00
Neil Alexander
e138fa679c Fix link panic when shutting down (closes #1168) 2024-09-22 17:05:25 +01:00
Neil Alexander
b1283e15f6 Link state tracking tweaks and improved shutdown 2024-08-11 10:42:25 +01:00
Neil Alexander
9950d1225d Improve link and handshake errors 2024-08-01 21:53:48 +01:00
Vasyl Gello
5ea16e63a1 Implement websocket (ws:// and wss://) links (#1152)
ws:// can be listened and dialed
wss:// is a convenience link for ws:// that supports dialing to ws://
peer.

---------

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
Co-authored-by: Neil Alexander <neilalexander@users.noreply.github.com>
2024-07-23 22:58:11 +01:00
Neil Alexander
04c0acf71b Various clean-ups 2024-07-20 12:31:58 +01:00
Neil Alexander
8ecc402d7c Allow multiple connections to the same link-local address
Note that this may mean that currently we end up with two links to each multicast-discovered peer, one incoming and one outgoing
2024-07-20 11:31:08 +01:00
Paul Donald
f56f9c124c Minor Fixes (#1107)
* Minor comment fixes.

* Optimize PeerEntry for memory efficiency

* Improve NodeConfig for memory alignment
2024-05-27 21:57:28 +01:00
Neil
180d7bf499 Adjust default backoff max to just over 1 hour, add ?maxbackoff= peer option (#1124)
Co-authored-by: Neil Alexander <neilalexander@users.noreply.github.com>
2024-01-15 23:09:07 +00:00
Neil Alexander
fef553ed18 Tweak logging 2023-11-26 16:28:48 +00:00
Neil Alexander
a0b3897278 Cap link backoff at roughly 4.5 hours 2023-11-21 23:54:27 +00:00
Neil Alexander
7aca869170 Tweak backoff success handling 2023-11-21 10:35:17 +00:00
Neil
0346af46da Don't panic when connect returns nil (fixes #1086) (#1089)
* Don't panic when connect returns `nil` (fixes #1086)

It isn't clear to me why this would happen but let's guard the condition anyway.

* Log inconsistent error state

---------

Co-authored-by: Neil Alexander <neilalexander@users.noreply.github.com>
2023-11-04 18:42:42 +00:00
Neil
93a5adfd18 Add sockstls:// (#1090)
Closes #1087.

Co-authored-by: Neil Alexander <neilalexander@users.noreply.github.com>
2023-11-04 17:57:15 +00:00
Neil
ddb75700a0 Report errors during handshake stage (#1091)
Co-authored-by: Neil Alexander <neilalexander@users.noreply.github.com>
2023-11-04 17:57:04 +00:00
Neil Alexander
73c6c25bd9 Restore removePeer method 2023-10-22 10:27:41 +01:00
Neil Alexander
bcd80b043f Don't tightloop when a listener can no longer accept connections 2023-10-17 21:41:21 +01:00
Neil Alexander
268ffbfd14 Add authenticated handshake, support for passwords 2023-10-09 17:17:12 +01:00
Neil Alexander
490c11c29e Fix more codefactor suggestions 2023-09-03 13:49:21 +01:00
Neil Alexander
991ea8b876 Fix codefactor suggestion 2023-09-03 13:32:15 +01:00
Neil Alexander
5b203ad8c5 Use Go 1.21 in CI, update minimum version to Go 1.20, lint fixes, update quic-go 2023-08-12 18:12:58 +01:00
Neil Alexander
63b214f6b7 Fix negotiating priority on connection 2023-07-15 22:34:29 +01:00
Arceliar
7f94463332 Merge pull request #1037 from yggdrasil-network/neil/quic
QUIC interface support
2023-06-19 06:27:09 -05:00
Neil Alexander
d8dc6b2670 QUIC interface support 2023-06-18 20:54:14 +01:00
Neil Alexander
109f59c7dc Tweak link handshake 2023-06-18 20:28:14 +01:00
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
2eda59d9e4 Improve link setup locking and guards 2023-05-23 22:39:10 +01:00
Neil Alexander
06ca8941c7 Fix race condition between incoming and outgoing connection setup 2023-05-22 23:10:44 +01:00
Neil Alexander
cb8333f9ff Tweak lock behaviour 2023-05-21 00:02:04 +01:00
Neil Alexander
333561f4e1 Tweak link state locking, add comments, listener priority, other fixes 2023-05-20 23:44:31 +01:00
Neil Alexander
aff3201084 Fix incoming connection handlers 2023-05-20 22:22:15 +01:00
Neil Alexander
c0188f5600 Discriminate multicast peers more loosely 2023-05-20 21:18:49 +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
6e338b6f89 Fix con urrent map accesses 2023-05-20 18:21:02 +01:00
Neil Alexander
7afa23be4c Link refactoring, admin socket changes 2023-05-19 19:09:05 +01:00
Neil Alexander
5a243d5b95 Update ironwood replace 2023-03-19 21:44:34 +00: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
e824c73e21 Fix crash 2022-11-12 11:56:50 +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
8fe1c41295 Don't reject multiple genuine links from the same host 2022-10-22 16:59:25 +01:00
Neil Alexander
d66b3ffb7a Always allow link-local peerings again 2022-10-22 16:23:25 +01:00
Neil Alexander
c55611a478 Tweak logging for connections 2022-10-22 14:56:11 +01:00
Neil Alexander
69632bacb5 Tidy up 2022-10-02 13:20:39 +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
d9fe6f72ac Lint tweaks 2022-09-24 17:05:44 +01:00