From df9a5f716cf9ea2e9a3007d28ba4d2793aa4680d Mon Sep 17 00:00:00 2001
From: Jakob Olsson <jakob.olsson@iopsys.eu>
Date: Thu, 22 Sep 2022 08:51:54 +0000
Subject: [PATCH] ts: clean stale VIDs

---
 src/nl.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/src/nl.c b/src/nl.c
index 54395ce45..9e3cdbb3d 100644
--- a/src/nl.c
+++ b/src/nl.c
@@ -299,18 +299,26 @@ static void ts_set_iface_vlan(struct ts_context *ts, struct ts_iface *tsif)
 static void ts_set_system(struct ts_context *ts)
 {
 	char buf[16] = {0};
+	char cmd[128] = {0};
 	uint16_t vid;
 	int i;
 
 	if (ts->primary_vid == 0)
 		return;
 
+	strncpy(cmd, "/lib/wifi/multiap ts keep", sizeof(cmd));
+
 	for (i = 0; i < ts->num_vids; i++) {
 		vid = ts->all_vids[i];
 		warn("/lib/wifi/multiap ts create %u\n",vid);
 		Cmd(buf, sizeof(buf), "/lib/wifi/multiap ts create %u", vid);
+		snprintf(cmd + strlen(cmd),  sizeof(cmd) - strlen(cmd), " %hu", vid);
 	}
 
+	/* remove any stale vids from network config */
+	if (ts->num_vids)
+		Cmd(buf, sizeof(buf), cmd);
+
 	warn("/lib/wifi/multiap ts reload\n");
 	Cmd(buf, sizeof(buf), "/lib/wifi/multiap ts reload");
 }
-- 
GitLab