state: drop auto-approved routes when they are withdrawn

Only routes auto-approval alone granted go; approvals from before the
upgrade stay, as do routes an admin set.
This commit is contained in:
Kristoffer Dalby committed 2026-10-30 14:55:36 +00:00
1 parent 20117e7060
commit cd09ccaf34
5 files changed
+215 -66

No files matched your search

+4 -2
View File
@@ -3007,7 +3007,9 @@ func TestAutoApproveMultiNetwork(t *testing.T) {
nodes, err = headscale.ListNodes()
assert.NoError(c, err)
requireNodeRouteCountWithCollect(c, MustFindNode(routerUsernet1.Hostname(), nodes), 1, 1, 1)
requireNodeRouteCountWithCollect(c, nodes[1], 1, 1, 0)
// The withdrawn sub-route was auto-approved, so it loses
// its approval.
requireNodeRouteCountWithCollect(c, nodes[1], 1, 0, 0)
requireNodeRouteCountWithCollect(c, nodes[2], 0, 0, 0)
}, assertTimeout, 500*time.Millisecond, "route state changes should propagate")
@@ -3047,7 +3049,7 @@ func TestAutoApproveMultiNetwork(t *testing.T) {
nodes, err = headscale.ListNodes()
assert.NoError(c, err)
requireNodeRouteCountWithCollect(c, MustFindNode(routerUsernet1.Hostname(), nodes), 1, 1, 1)
requireNodeRouteCountWithCollect(c, nodes[1], 1, 1, 0)
requireNodeRouteCountWithCollect(c, nodes[1], 1, 0, 0)
requireNodeRouteCountWithCollect(c, nodes[2], 2, 2, 2)
}, assertTimeout, 500*time.Millisecond, "route state changes should propagate")