Browse Source

handler for KeyUpdate was missing a call to apply new wireguard conf

Matthew R. Kasun 3 years ago
parent
commit
a4da05117e
1 changed files with 13 additions and 1 deletions
  1. 13 1
      netclient/functions/daemon.go

+ 13 - 1
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
 }