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-28 14:42:02 +00:00
1 parent 070fe4c9bd
commit e481fe49d3
5 files changed
+215 -66

No files matched your search

+4 -2
View File
@@ -3008,7 +3008,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")
@@ -3048,7 +3050,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")