diff --git a/controllers/node.go b/controllers/node.go index c8fa5f57..36973fed 100644 --- a/controllers/node.go +++ b/controllers/node.go @@ -629,13 +629,14 @@ func runUpdates(node *models.Node, ifaceDelta bool) { if err != nil { logger.Log(3, "error occurred on timer,", err.Error()) } - if err := runServerUpdate(node, ifaceDelta); err != nil { - logger.Log(1, "error running server update", err.Error()) - } // publish node update if not server if err := mq.NodeUpdate(node); err != nil { logger.Log(1, "error publishing node update to node", node.Name, node.ID, err.Error()) } + + if err := runServerUpdate(node, ifaceDelta); err != nil { + logger.Log(1, "error running server update", err.Error()) + } }() } @@ -648,8 +649,8 @@ func runServerUpdate(node *models.Node, ifaceDelta bool) error { return nil } - if !isServer(node) && ifaceDelta { - ifaceDelta = false + if !isServer(node) { + return nil } currentServerNode, err := logic.GetNetworkServerLocal(node.Network) diff --git a/netclient/functions/daemon.go b/netclient/functions/daemon.go index b8f07e92..1d15e500 100644 --- a/netclient/functions/daemon.go +++ b/netclient/functions/daemon.go @@ -199,6 +199,12 @@ func NodeUpdate(client mqtt.Client, msg mqtt.Message) { return } if ifaceDelta { // if a change caused an ifacedelta we need to notify the server to update the peers + pubErr := publishClientPeers(&cfg) + if pubErr != nil { + ncutils.Log("could not notify server to update peers after interface change") + } else { + ncutils.Log("signalled peer update to server") + } ncutils.Log("applying WG conf to " + file) err = wireguard.ApplyConf(&cfg.Node, cfg.Node.Interface, file) if err != nil { @@ -215,12 +221,6 @@ func NodeUpdate(client mqtt.Client, msg mqtt.Message) { } } } - pubErr := publishClientPeers(&cfg) - if pubErr != nil { - ncutils.Log("could not notify server to update peers after interface change") - } else { - ncutils.Log("signalled peer update to server") - } } //deal with DNS if newNode.DNSOn != "yes" && shouldDNSChange && cfg.Node.Interface != "" { diff --git a/netclient/wireguard/common.go b/netclient/wireguard/common.go index 439e9437..1d3bca7d 100644 --- a/netclient/wireguard/common.go +++ b/netclient/wireguard/common.go @@ -131,10 +131,6 @@ func InitWireguard(node *models.Node, privkey string, peers []wgtypes.PeerConfig return err } nodecfg := modcfg.Node - - if err != nil { - log.Fatalf("failed to open client: %v", err) - } var ifacename string if nodecfg.Interface != "" { ifacename = nodecfg.Interface