diff --git a/client/internal/routemanager/exit_node_selection_test.go b/client/internal/routemanager/exit_node_selection_test.go index c302dee98..28dd0a640 100644 --- a/client/internal/routemanager/exit_node_selection_test.go +++ b/client/internal/routemanager/exit_node_selection_test.go @@ -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") } diff --git a/client/internal/routemanager/manager.go b/client/internal/routemanager/manager.go index 509faef1b..eb3407377 100644 --- a/client/internal/routemanager/manager.go +++ b/client/internal/routemanager/manager.go @@ -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 } diff --git a/client/internal/routeselector/routeselector.go b/client/internal/routeselector/routeselector.go index 0c563a74f..dee1ef4a0 100644 --- a/client/internal/routeselector/routeselector.go +++ b/client/internal/routeselector/routeselector.go @@ -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()