Neil
ae997a5acb
Improve TUN setup logging ( #1093 ) ( #1095 )
...
Co-authored-by: Neil Alexander <neilalexander@users.noreply.github.com>
2023-11-04 17:56:52 +00:00
Neil Alexander
e41b838d8f
Don't panic at startup when duplicate peers are configured
...
Fixes #1077
2023-10-28 21:34:15 +01:00
Neil
0b578a637a
Debian package updates ( #1073 )
...
* Update Debian package
* Don't put `AdminListen` in config by default, fix path in Debian package
* Fix path in unit file
* Preserve original service files for other packages
---------
Co-authored-by: Neil Alexander <neilalexander@users.noreply.github.com>
2023-10-28 14:58:52 +01:00
Arceliar
82c54f87ea
clean up some debug API output
2023-10-28 06:36:01 -05:00
Arceliar
d17ac39789
update ironwood dependency, add a debug API call for lookups
2023-10-28 05:26:43 -05:00
Neil Alexander
094f80f39c
Fix RetryPeersNow
, move startup logging, don't set TUN address if not available
2023-10-22 15:51:30 +01:00
Neil Alexander
955aa4af79
Remove unnecessary pprof log line
2023-10-22 10:29:19 +01:00
Neil Alexander
73c6c25bd9
Restore removePeer
method
2023-10-22 10:27:41 +01:00
Neil Alexander
80e56eafcd
Allow PPROFLISTEN
on all builds
2023-10-21 21:36:28 +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
74ca02edfd
Don't require TLS client certificate
2023-10-15 23:06:10 +01:00
Neil Alexander
efb4b4635d
Don't send a TLS ALPN name
2023-10-14 20:26:30 +01:00
Neil Alexander
117e4b88f8
Fix panic on invalid handshake length
2023-10-12 19:12:17 +01:00
Neil Alexander
4b48fd0b5f
Fix Windows TUN build
2023-10-12 00:08:16 +01:00
Neil Alexander
2a21241738
Multicast passwords
2023-10-11 19:28:28 +01:00
Neil Alexander
45b773eade
Remove TLS root validation
...
This is just too complicated compared to the per-peer/per-listener/per-interface password
approach.
2023-10-11 18:25:35 +01:00
Neil Alexander
bd7e699130
Add unit test for password auth
2023-10-09 22:28:20 +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
fa3d943ba9
Don't set BBR for TCP peerings
2023-09-03 13:30:41 +01:00
Neil Alexander
8f3ab1d83c
Merge branch 'develop' into future
2023-09-03 13:08:40 +01:00
Neil Alexander
12a3a8c73b
Fix build tags for setupFD
2023-09-03 13:08:13 +01:00
Neil
6ab0639b82
Merge branch 'develop' into future
2023-09-03 12:58:55 +01:00
Neil Alexander
fbc5f62add
Fix missing setupFD
stubs
2023-08-17 14:08:03 +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
Arceliar
bcbabff80f
Merge pull request #1038 from yggdrasil-network/neil/multicast
...
Revise multicast format to include protocol version, discriminator for TLS roots
2023-06-19 06:26:58 -05:00
Neil Alexander
57d9a2399f
Revise multicast format to include protocol version, discriminator for TLS roots
2023-06-18 20:54:49 +01:00
Neil Alexander
423fc248d2
Remove debug lines
2023-06-18 20:54:16 +01:00
Neil Alexander
516fcce6b3
Keepalives are needed to stop the connection inactivity timeout
2023-06-18 20:54:16 +01: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
Neil Alexander
002b984c04
Fix private key setup when certificate not specified
2023-06-18 18:10:27 +01:00
Neil Alexander
5e684550a8
Take interface in tun.New
2023-06-18 15:45:04 +01:00
Neil Alexander
b0f8d8af13
Define interface for RWCs
2023-06-18 15:36: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
db9b57c052
Update contrib/mobile
for the latest iOS build
2023-06-06 22:11:49 +01: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
Arceliar
e94985c583
try to cheer up the linter again
2023-05-21 12:49:49 -05:00
Arceliar
5a6f27e732
cheer up the linter
2023-05-21 12:43:03 -05:00
Arceliar
8b5add5301
reduce allocations (also pulls in updated ironwood to do the same)
2023-05-21 12:38:16 -05: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
e290e744f4
Fix -autoconf
2023-05-20 10:54:49 +01:00
Neil Alexander
6ac2fae845
Fix Windows build
2023-05-19 20:34:51 +01:00
Neil Alexander
7b1635245f
Add missing path notify and bloom transform
2023-05-19 19:33:40 +01:00
Neil Alexander
a9ec3877b5
Fix unit test
2023-05-19 19:09:06 +01:00
Neil Alexander
7afa23be4c
Link refactoring, admin socket changes
2023-05-19 19:09:05 +01:00
Arceliar
669e61af9a
update to bugfixed ironwood, fix broken core test, add getPaths handler to admin socket
2023-05-13 16:15:04 -05: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
Arceliar
abbe94fa80
fix core tests and run gofmt on src
2023-03-26 16:34:49 -05:00
Arceliar
fc632c5caa
comment out some unused ipv6rwc code
2023-03-26 16:17:31 -05:00
Arceliar
5b6d9d52f3
update ironwood replace, update ipv6rwc to work (may need updates later if interface changes)
2023-03-26 16:12:45 -05: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
9ee6c46b1d
Merge branch 'develop' into bsd_build_fix
2023-02-26 21:40:29 +00:00
Neil Alexander
38736358dd
Fix lint error properly this time
2023-02-26 21:35:56 +00:00
Neil Alexander
6d6c408957
Test against Go 1.20, maybe fix lint issue
2023-02-26 21:31:20 +00:00
Neil
783b4d3de6
Merge branch 'develop' into bsd_build_fix
2023-02-26 21:28:29 +00:00
anon
9cbc71bc8a
Added member to Logger struct expected by tun_bsd.go
2022-12-18 00:37:34 -05:00
Neil Alexander
723097fbf6
Deduplicate some logic
2022-11-26 16:18:15 +00:00
Neil Alexander
1adc88ec77
Merge branch 'develop' into neilalexander/tryall
2022-11-26 16:00:46 +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
majestrate
6fed2a75d7
Make TLS certs never expire ( #977 )
...
According to RFC5280 we can make TLS certs never expire by setting their `NotAfter` date to a value that is basically the end of time.
Fixes #976 .
2022-11-08 22:11:22 +00:00
Neil Alexander
110613b234
Try all addresses when connecting to a DNS name
...
Fixes #980
2022-11-08 21:59:13 +00:00
Neil Alexander
590d83aa9c
Fix #975 by not exporting uint8
2022-11-01 17:42:52 +00:00
Neil Alexander
cfa293d189
Fix bug in admin socket where requests fail unless "arguments":{}
is specified in the JSON
2022-10-26 22:29:19 +01: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
65e350153e
Don't start multicast module if all Beacon
and Listen
are disabled
2022-10-22 18:05:14 +01:00
Neil Alexander
35ea66d651
Varying connection check strictness based on scope
2022-10-22 17:45:09 +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
63c4cb5c21
Fix reporting name for TCP
2022-10-22 15:47:09 +01:00
Neil Alexander
0a1a155e66
Use SO_REUSEADDR
instead of SO_REUSEPORT
on Linux
2022-10-22 14:56:29 +01:00
Neil Alexander
c55611a478
Tweak logging for connections
2022-10-22 14:56:11 +01:00
Neil Alexander
22caddef63
Don't log duplicate connection attempt
2022-10-21 19:49:49 +01:00
Neil Alexander
81839ad50d
Fix InterfacePeers
2022-10-21 19:49:15 +01:00
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