summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--control/controlclient/auto.go11
1 files changed, 10 insertions, 1 deletions
diff --git a/control/controlclient/auto.go b/control/controlclient/auto.go
index a27e9e2fa..8e3ee43e2 100644
--- a/control/controlclient/auto.go
+++ b/control/controlclient/auto.go
@@ -694,9 +694,18 @@ func (c *Auto) StartLogout() {
func (c *Auto) Logout(ctx context.Context) error {
c.logf("client.Logout()")
+ c.mu.Lock()
+ // This happens if a user logs out when tailscale client is already logged
+ // out either because the user logged out previously or hasn't yet logged
+ // in.
+ if !c.loggedIn {
+ c.logf("client.Logout(): no action taken, client is already logged out.")
+ c.mu.Unlock()
+ return nil
+ }
+
errc := make(chan error, 1)
- c.mu.Lock()
c.loginGoal = &LoginGoal{
wantLoggedIn: false,
loggedOutResult: errc,