4
0
mirror of https://github.com/cwinfo/yggdrasil-go.git synced 2025-06-14 20:56:05 +00:00
Commit Graph

2314 Commits

Author SHA1 Message Date
ac375917c9 Update changelog for v0.3.16 release (#769)
* draft of changelog

* more changelog
2021-03-18 18:58:20 +00:00
f0a5cd542c Build MSIs for Windows using CircleCI (#766)
* Try to build MSIs from CircleCI using wixl/msitools

* Upload msis

* Change condition

* Update Platform

* Update Platform

* Don't build ARM, it's apparently not well supported

* Don't build ARM, it's apparently not well supported

* Remove appveyor config

* Update comments

* newline
2021-03-07 14:03:34 +00:00
7174cfce40 Move up to Go 1.16, upgrade dependencies (#765) 2021-03-07 08:45:47 +00:00
0ab2685489 Fix wireguard dependency 2021-02-18 09:36:45 +00:00
6eb74a40e1 Merge pull request #751 from Arceliar/bugfix
Fix goroutine leak in link.go
2020-12-19 11:04:13 -06:00
78073429a2 Merge branch 'pathfinder' of https://github.com/Arceliar/yggdrasil-go into pathfinder 2020-12-19 06:03:59 -06:00
0ba2ad74fe use source routes in the dht (when available) 2020-12-19 06:03:28 -06:00
a8810c7ee9 if the link handler exits early due to an existing connection, then have it return a channel to that connection which closes when the connection is closed, so we can choose to block on that to avoid spamming connection attempts with dial 2020-12-13 16:29:03 -06:00
1daf3e7bd7 remove link.go block on oldIntf if we already have a connection to the same node, this spams connections, so it's not a good long-term fix if that's where the goroutine leak is 2020-12-13 16:16:14 -06:00
5b326d8bb8 Update generate.sh (#736)
The AppArmor profile in contrib forbids `/usr/bin/yggdrasil` from reading the file in `/var/backups/yggdrasil.conf...`. This works around that restriction by having the shell do the reading of `/var/backups/yggdrasil.conf...` file while providing the same exact functionality without making the AppArmor profile less restrictive. 

Another change is the safe perms for the `/etc/yggdrasil.conf` (so that config will have 0640 permissions). This is important because if we kept the default of 644 then any user (privileged or unprivileged) will have the ability to read the yggdrasil private key. We use a restrictive umask of 0027 to make this possible.
2020-12-06 20:52:54 +00:00
709ea6976c apparmor: allow yggdrasil to resolve hostnames (#739)
The apparmor profile in it's current state won't allow resolving hostnames. We need `<abstractions/nameservice>` because we simply can't just allow `/etc/resolv.conf`. This is because systemd-resolved, resolvconf, and others rely on symbolic links to `/etc/resolv.conf` which would make this extremely complicated.  `<abstractions/nameservice>` deals with this complexity to allow every single one of those packages (systemd-resolved, resolvconf, ... ).

```
  network inet stream,
  network inet dgram,
  network inet6 dgram,
  network inet6 stream,
  network netlink raw,
```
was removed because it's already included in `<abstractions/nameservice>`. Some permissions that are no longer needed in newer yggdrasil versions were also removed.

`owner /sys/kernel/mm/transparent_hugepage/hpage_pmd_size r,` was changed to `/sys/kernel/mm/transparent_hugepage/hpage_pmd_size r,` because there is no guarantee that yggdrasil will always be run as root. (`owner` makes sure that the process's user and the file have the same owner, in that case, root. This might not always be the case so `owner` was removed)
2020-12-06 20:52:10 +00:00
b9f35c5530 Return ICMPv6 Destination Unreachable for unknown destinations (#748)
* Return ICMPv6 Destination Unreachable for unknown destinations

* Update go.mod/go.sum for yggdrasil-extras

* go mod tidy
2020-12-06 19:47:25 +00:00
cb3d8647de Merge pull request #744 from octeep/master
Fix DefaultIfName for OpenBSD
2020-12-06 13:48:09 +00:00
df1239b054 attempting to debug/fix a possible goroutine leak 2020-11-25 02:44:13 -06:00
ea58a0f181 Clean go.mod/go.sum 2020-11-15 13:32:28 +00:00
939ffb02f8 adjust when dht reqs are reset 2020-11-14 15:05:02 -06:00
04e890fcc3 Change DefaultIfName from "/dev/tun0" to "tun0"
Specifying the full path to the interface in OpenBSD would result in:
panic: Interface name must be tun[0-9]*

Therefore, DefaultIfName should be changed to tun0 in order to make yggdrasil work out of the box.
2020-11-13 06:38:27 +00:00
428789f24c simplify switch parent selection and minor source routing improvements 2020-11-09 19:01:11 -06:00
144d42c773 send dht responses via reverse path (fixes some possible DDoS issues with the old coord approach) 2020-11-08 06:09:55 -06:00
0ac203b007 adjust how sessions learn source routes, try to recover faster if coords change (but assume the old path still works until we get a ping through that gives us a new path) 2020-11-08 05:39:30 -06:00
e19e938f64 safer pathfinding behavior 2020-11-07 15:19:09 -06:00
994c26e5f7 simplify pathfinder 2020-11-07 12:08:01 -06:00
b5cd40b801 WIP very simple insecure proof-of-concept for pathfinding and source routing 2020-11-07 10:50:55 -06:00
e2521de94d add path information to (protocol) traffic packets as they flow through the network, and a field for a reply path 2020-11-07 09:44:34 -06:00
36e4ce4b0b WIP rough implementation of the source routed part of hybrid routing, does not work if coord length is too long (>127 hops) 2020-11-07 07:10:13 -06:00
92dbb48eda add (but don't use) offset field for (protocol) traffic packets 2020-11-07 06:18:09 -06:00
f1e9837a98 Merge pull request #738 from Arceliar/bugfix
Listener bugfix
2020-11-07 05:51:04 -06:00
1d1c6efa1f attempt to keep TCP listener alive if there's a temporary error (e.g. too many open files), just pause and retry later 2020-10-18 11:01:18 -05:00
9eb4981ac1 Merge pull request #734 from yggdrasil-network/develop-future
Future → Develop
2020-10-11 16:45:24 +01:00
e90d40a49e Don't require lint in pipeline 2020-10-11 16:41:40 +01:00
b6c894bc01 Merge branch 'future' of https://github.com/yggdrasil-network/yggdrasil-go into develop-future 2020-10-11 07:35:28 -05:00
afebc1f93d Merge pull request #712 from Arceliar/bugfix
[future] possibly fix missing switch peer issue
2020-10-11 07:34:19 -05:00
fdb296047b Merge branch 'future' into develop-future 2020-09-27 20:28:26 +01:00
d3672545a3 Version 0.3.15 (#731) 2020-09-27 15:50:58 +01:00
ba7be10a2f Update changelog 2020-09-27 15:05:14 +01:00
d6d2d9c19a Accept some golint suggestions (#690)
* Fixed some linter issues

* Simplified isBetter method

* Accept some linter suggestions

* Fix typo

Co-authored-by: klesomik <klesomiks@gmail.com>
Co-authored-by: Neil Alexander <neilalexander@users.noreply.github.com>
2020-09-27 14:42:46 +01:00
1492738c9e golangci-lint in CI (#733)
* golangci-lint in CI

* Put CI in own job

* Run verify job

* Use go get

* Fix typo

* Name lint instead of verify

* Read the config

* Use debug tag

* Tweaks
2020-09-27 14:28:25 +01:00
48bf0ce210 Revert "Fix build"
This reverts commit e09ca6a089.
2020-09-27 13:28:13 +01:00
e09ca6a089 Fix build 2020-09-27 13:26:37 +01:00
7588a55e84 README: mention Nix package (#689) 2020-09-27 13:24:19 +01:00
fcb6f5ca36 Set default conf file on FreeBSD to /usr/local/etc/yggdrasil.conf (#717) 2020-09-27 13:22:49 +01:00
33e3679458 multicast, use the prebuilt interface map when checking active listeners (#707) 2020-09-27 13:16:51 +01:00
d9fd68f18c Fix build 2020-07-06 14:21:28 +01:00
a4a346c498 Merge branch 'develop' into future 2020-07-06 14:16:38 +01:00
48f008a8e2 Implement Core.RemovePeer method (#699) (#709)
Co-authored-by: George <zhoreeq@users.noreply.github.com>
2020-07-06 14:14:34 +01:00
3fded209df try to fix some possible races with how peers are added/removed and how they're blocked in the switch when they enter a bad state 2020-06-06 12:30:54 -05:00
aec82d7a39 Merge pull request #702 from Arceliar/switch
Precompute more for the switch lookup table
2020-05-30 18:39:43 -05:00
a1856258a9 Merge pull request #704 from Arceliar/queues
Faster queue logic
2020-05-30 18:39:33 -05:00
35e7542889 Merge pull request #706 from Arceliar/buffers
More buffer fine-tuning
2020-05-30 18:39:24 -05:00
c83b070c69 remove old switch lookup functions 2020-05-30 13:12:49 -05:00