From a17d6d3a688b772cb0b725d7228174b4fba1e672 Mon Sep 17 00:00:00 2001 From: Neil Alexander Date: Tue, 5 Mar 2019 17:37:26 +0000 Subject: [PATCH 1/2] Fix getTunTap (fixes #363) --- src/yggdrasil/admin.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/yggdrasil/admin.go b/src/yggdrasil/admin.go index 6280339..b42b231 100644 --- a/src/yggdrasil/admin.go +++ b/src/yggdrasil/admin.go @@ -173,9 +173,10 @@ func (a *admin) init(c *Core) { }) a.addHandler("getTunTap", []string{}, func(in admin_info) (r admin_info, e error) { defer func() { - recover() - r = admin_info{"none": admin_info{}} - e = nil + if err := recover(); err != nil { + r = admin_info{"none": admin_info{}} + e = nil + } }() return admin_info{ From 236692bdc42accdfecd43ffd6730df80f20a7a22 Mon Sep 17 00:00:00 2001 From: Neil Alexander Date: Tue, 5 Mar 2019 17:55:46 +0000 Subject: [PATCH 2/2] Add getTunnelRouting and setTunnelRouting (fixes #362) --- src/yggdrasil/admin.go | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/yggdrasil/admin.go b/src/yggdrasil/admin.go index b42b231..a7b5bd9 100644 --- a/src/yggdrasil/admin.go +++ b/src/yggdrasil/admin.go @@ -252,6 +252,23 @@ func (a *admin) init(c *Core) { }, errors.New("Failed to remove allowed key") } }) + a.addHandler("getTunnelRouting", []string{}, func(in admin_info) (admin_info, error) { + enabled := false + a.core.router.doAdmin(func() { + enabled = a.core.router.cryptokey.isEnabled() + }) + return admin_info{"enabled": enabled}, nil + }) + a.addHandler("setTunnelRouting", []string{"enabled"}, func(in admin_info) (admin_info, error) { + enabled := false + if e, ok := in["enabled"].(bool); ok { + enabled = e + } + a.core.router.doAdmin(func() { + a.core.router.cryptokey.setEnabled(enabled) + }) + return admin_info{"enabled": enabled}, nil + }) a.addHandler("addSourceSubnet", []string{"subnet"}, func(in admin_info) (admin_info, error) { var err error a.core.router.doAdmin(func() {