routeselector: remove duplicate IsDeselectAllActive

IsDeselectAllActive was identical to IsDeselectAll (both return the
deselectAll flag under a read lock). The two were introduced in parallel
on separate branches for the same fix - guarding against management route
sync overriding a user's explicit deselect-all - and ended up coexisting
after the branches merged.

Drop IsDeselectAllActive, keep the canonical IsDeselectAll from main, and
move its richer doc comment over. Update callers accordingly.
This commit is contained in:
Zoltan Papp
2026-06-13 00:50:42 +02:00
parent a1a24bd777
commit 2d54c7f088
3 changed files with 5 additions and 13 deletions

View File

@@ -116,7 +116,7 @@ func TestEnforceSingleExitNode_RespectsDeselectAll(t *testing.T) {
m.enforceSingleExitNode("b", []route.NetID{"a", "b"})
assert.True(t, m.routeSelector.IsDeselectAllActive(), "global deselect-all must stay in effect")
assert.True(t, m.routeSelector.IsDeselectAll(), "global deselect-all must stay in effect")
assert.False(t, m.routeSelector.IsSelected("b"), "no exit node should be forced on while deselect-all is set")
}

View File

@@ -817,7 +817,7 @@ func pickPreferredExitNode(info exitNodeInfo) route.NetID {
// disturbing non-exit route selections. A global deselect-all is left untouched
// so the user's "all off" stays in effect.
func (m *DefaultManager) enforceSingleExitNode(preferred route.NetID, allIDs []route.NetID) {
if m.routeSelector.IsDeselectAllActive() {
if m.routeSelector.IsDeselectAll() {
return
}

View File

@@ -116,7 +116,9 @@ func (rs *RouteSelector) DeselectAllRoutes() {
clear(rs.selectedRoutes)
}
// IsDeselectAll reports whether the user has explicitly deselected all routes.
// IsDeselectAll reports whether the global "deselect all" flag is set, i.e. the
// user explicitly disabled every route. Callers enforcing per-route invariants
// (e.g. single exit node) should leave the selection untouched when it is.
func (rs *RouteSelector) IsDeselectAll() bool {
rs.mu.RLock()
defer rs.mu.RUnlock()
@@ -132,16 +134,6 @@ func (rs *RouteSelector) IsSelected(routeID route.NetID) bool {
return rs.isSelectedLocked(routeID)
}
// IsDeselectAllActive reports whether the global "deselect all" flag is set,
// i.e. the user disabled every route. Callers enforcing per-route invariants
// (e.g. single exit node) should leave the selection untouched when it is.
func (rs *RouteSelector) IsDeselectAllActive() bool {
rs.mu.RLock()
defer rs.mu.RUnlock()
return rs.deselectAll
}
// FilterSelected removes unselected routes from the provided map.
func (rs *RouteSelector) FilterSelected(routes route.HAMap) route.HAMap {
rs.mu.RLock()