From 731977533b1f22262041daae77504a72b895d8bb Mon Sep 17 00:00:00 2001 From: 0xdcarns Date: Fri, 4 Feb 2022 16:47:57 -0500 Subject: [PATCH] on delete, removes files and ends daemon if required, ifacedelta on key refresh --- netclient/functions/daemon.go | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/netclient/functions/daemon.go b/netclient/functions/daemon.go index d497feed..daa1cfdb 100644 --- a/netclient/functions/daemon.go +++ b/netclient/functions/daemon.go @@ -249,22 +249,31 @@ func NodeUpdate(client mqtt.Client, msg mqtt.Message) { cfg.Node = newNode switch newNode.Action { case models.NODE_DELETE: - if err := RemoveLocalInstance(&cfg, cfg.Network); err != nil { - ncutils.PrintLog("error deleting local instance: "+err.Error(), 1) - return - } if token := client.Unsubscribe(fmt.Sprintf("update/%s/%s", newNode.Network, newNode.ID), fmt.Sprintf("peers/%s/%s", newNode.Network, newNode.ID)); token.Wait() && token.Error() != nil { ncutils.PrintLog("error unsubscribing during node deletion", 1) } + if err := WipeLocal(cfg.Network); err != nil { + ncutils.PrintLog("error deleting local instance: "+err.Error(), 1) + ncutils.PrintLog("Please perform manual clean up", 1) + } + currNets, err := ncutils.GetSystemNetworks() + if err == nil && len(currNets) == 0 { + if err = RemoveLocalInstance(&cfg, cfg.Network); err != nil { + ncutils.PrintLog("Please perform manual clean up", 1) + } + os.Exit(0) + } return case models.NODE_UPDATE_KEY: if err := UpdateKeys(&cfg, client); err != nil { ncutils.PrintLog("err updating wireguard keys: "+err.Error(), 1) } + ifaceDelta = true case models.NODE_NOOP: default: } //Save new config + cfg.Node.Action = models.NODE_NOOP if err := config.Write(&cfg, cfg.Network); err != nil { ncutils.PrintLog("error updating node configuration: "+err.Error(), 1) }