|
|
|
|
@ -1437,16 +1437,6 @@ func (b *LocalBackend) InServerMode() bool { |
|
|
|
|
return b.inServerMode |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// getEngineStatus returns a copy of b.engineStatus.
|
|
|
|
|
//
|
|
|
|
|
// TODO(bradfitz): remove this and use Status() throughout.
|
|
|
|
|
func (b *LocalBackend) getEngineStatus() ipn.EngineStatus { |
|
|
|
|
b.mu.Lock() |
|
|
|
|
defer b.mu.Unlock() |
|
|
|
|
|
|
|
|
|
return b.engineStatus |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Login implements Backend.
|
|
|
|
|
func (b *LocalBackend) Login(token *tailcfg.Oauth2Token) { |
|
|
|
|
b.mu.Lock() |
|
|
|
|
@ -2346,6 +2336,7 @@ func (b *LocalBackend) nextState() ipn.State { |
|
|
|
|
blocked = b.blocked |
|
|
|
|
wantRunning = b.prefs.WantRunning |
|
|
|
|
loggedOut = b.prefs.LoggedOut |
|
|
|
|
st = b.engineStatus |
|
|
|
|
) |
|
|
|
|
b.mu.Unlock() |
|
|
|
|
|
|
|
|
|
@ -2387,7 +2378,7 @@ func (b *LocalBackend) nextState() ipn.State { |
|
|
|
|
// (if we get here, we know MachineAuthorized == true)
|
|
|
|
|
return ipn.Starting |
|
|
|
|
case state == ipn.Starting: |
|
|
|
|
if st := b.getEngineStatus(); st.NumLive > 0 || st.LiveDERPs > 0 { |
|
|
|
|
if st.NumLive > 0 || st.LiveDERPs > 0 { |
|
|
|
|
return ipn.Running |
|
|
|
|
} else { |
|
|
|
|
return state |
|
|
|
|
|