diff --git a/netclient/functions/daemon.go b/netclient/functions/daemon.go index b9f20fe9..0c5e0e5d 100644 --- a/netclient/functions/daemon.go +++ b/netclient/functions/daemon.go @@ -275,6 +275,14 @@ func NodeUpdate(client mqtt.Client, msg mqtt.Message) { if !strings.Contains("rpc error", err.Error()) { ncutils.PrintLog(fmt.Sprintf("failed to leave, please check that local files for network %s were removed", cfg.Node.Network), 1) } + ncutils.PrintLog(fmt.Sprintf("%s was removed", cfg.Node.Name), 1) + return + case models.NODE_UPDATE_KEY: + if err := UpdateKeys(&cfg, client); err != nil { + ncutils.PrintLog("err updating wireguard keys: "+err.Error(), 1) + } + case models.NODE_NOOP: + default: } ncutils.PrintLog(fmt.Sprintf("%s was removed", cfg.Node.Name), 1) return @@ -462,10 +470,14 @@ func UpdateKeys(cfg *config.ClientConfig, client mqtt.Client) error { return err } cfg.Node.PublicKey = key.PublicKey().String() - PublishNodeUpdate(cfg) if err := config.ModConfig(&cfg.Node); err != nil { ncutils.Log("error updating local config " + err.Error()) } + PublishNodeUpdate(cfg) + if err = wireguard.ApplyConf(&cfg.Node, cfg.Node.Interface, file); err != nil { + ncutils.Log("error applying new config " + err.Error()) + return err + } return nil }