mirror of
https://github.com/tailscale/tailscale.git
synced 2025-05-06 23:56:53 +00:00
control/controlclient: remove unused StartLogout
Updates #cleanup Co-authored-by: Maisem Ali <maisem@tailscale.com> Change-Id: I9d052fdbee787f1e8c872124e4bee61c7f04d142 Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
parent
ecc1d6907b
commit
04e1ce0034
@ -326,7 +326,11 @@ func (i *jsIPN) logout() {
|
|||||||
if i.lb.State() == ipn.NoState {
|
if i.lb.State() == ipn.NoState {
|
||||||
log.Printf("Backend not running")
|
log.Printf("Backend not running")
|
||||||
}
|
}
|
||||||
go i.lb.Logout()
|
go func() {
|
||||||
|
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
|
||||||
|
defer cancel()
|
||||||
|
i.lb.LogoutSync(ctx)
|
||||||
|
}()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (i *jsIPN) ssh(host, username string, termConfig js.Value) map[string]any {
|
func (i *jsIPN) ssh(host, username string, termConfig js.Value) map[string]any {
|
||||||
|
@ -679,17 +679,6 @@ func (c *Auto) Login(t *tailcfg.Oauth2Token, flags LoginFlags) {
|
|||||||
c.cancelAuth()
|
c.cancelAuth()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Auto) StartLogout() {
|
|
||||||
c.logf("client.StartLogout()")
|
|
||||||
|
|
||||||
c.mu.Lock()
|
|
||||||
c.loginGoal = &LoginGoal{
|
|
||||||
wantLoggedIn: false,
|
|
||||||
}
|
|
||||||
c.mu.Unlock()
|
|
||||||
c.cancelAuth()
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *Auto) Logout(ctx context.Context) error {
|
func (c *Auto) Logout(ctx context.Context) error {
|
||||||
c.logf("client.Logout()")
|
c.logf("client.Logout()")
|
||||||
|
|
||||||
|
@ -34,10 +34,6 @@ type Client interface {
|
|||||||
// LoginFinished flag (on success) or an auth URL (if further
|
// LoginFinished flag (on success) or an auth URL (if further
|
||||||
// interaction is needed).
|
// interaction is needed).
|
||||||
Login(*tailcfg.Oauth2Token, LoginFlags)
|
Login(*tailcfg.Oauth2Token, LoginFlags)
|
||||||
// StartLogout starts an asynchronous logout process.
|
|
||||||
// When it finishes, the Status callback will be called while
|
|
||||||
// AuthCantContinue()==true.
|
|
||||||
StartLogout()
|
|
||||||
// Logout starts a synchronous logout process. It doesn't return
|
// Logout starts a synchronous logout process. It doesn't return
|
||||||
// until the logout operation has been completed.
|
// until the logout operation has been completed.
|
||||||
Logout(context.Context) error
|
Logout(context.Context) error
|
||||||
|
@ -3910,18 +3910,7 @@ func (b *LocalBackend) ShouldHandleViaIP(ip netip.Addr) bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
// Logout tells the controlclient that we want to log out, and
|
|
||||||
// transitions the local engine to the logged-out state without
|
|
||||||
// waiting for controlclient to be in that state.
|
|
||||||
func (b *LocalBackend) Logout() {
|
|
||||||
b.logout(context.Background(), false)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (b *LocalBackend) LogoutSync(ctx context.Context) error {
|
func (b *LocalBackend) LogoutSync(ctx context.Context) error {
|
||||||
return b.logout(ctx, true)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (b *LocalBackend) logout(ctx context.Context, sync bool) error {
|
|
||||||
b.mu.Lock()
|
b.mu.Lock()
|
||||||
cc := b.cc
|
cc := b.cc
|
||||||
b.mu.Unlock()
|
b.mu.Unlock()
|
||||||
@ -3946,13 +3935,7 @@ func (b *LocalBackend) logout(ctx context.Context, sync bool) error {
|
|||||||
return errors.New("no controlclient")
|
return errors.New("no controlclient")
|
||||||
}
|
}
|
||||||
|
|
||||||
var err error
|
err := cc.Logout(ctx)
|
||||||
if sync {
|
|
||||||
err = cc.Logout(ctx)
|
|
||||||
} else {
|
|
||||||
cc.StartLogout()
|
|
||||||
}
|
|
||||||
|
|
||||||
b.stateMachine()
|
b.stateMachine()
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -826,9 +826,6 @@ type legacyBackend interface {
|
|||||||
StartLoginInteractive()
|
StartLoginInteractive()
|
||||||
// Login logs in with an OAuth2 token.
|
// Login logs in with an OAuth2 token.
|
||||||
Login(token *tailcfg.Oauth2Token)
|
Login(token *tailcfg.Oauth2Token)
|
||||||
// Logout terminates the current login session and stops the
|
|
||||||
// wireguard engine.
|
|
||||||
Logout()
|
|
||||||
// SetPrefs installs a new set of user preferences, including
|
// SetPrefs installs a new set of user preferences, including
|
||||||
// WantRunning. This may cause the wireguard engine to
|
// WantRunning. This may cause the wireguard engine to
|
||||||
// reconfigure or stop.
|
// reconfigure or stop.
|
||||||
|
@ -217,11 +217,6 @@ func (cc *mockControl) Login(t *tailcfg.Oauth2Token, flags controlclient.LoginFl
|
|||||||
cc.authBlocked = interact || newKeys
|
cc.authBlocked = interact || newKeys
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cc *mockControl) StartLogout() {
|
|
||||||
cc.logf("StartLogout")
|
|
||||||
cc.called("StartLogout")
|
|
||||||
}
|
|
||||||
|
|
||||||
func (cc *mockControl) Logout(ctx context.Context) error {
|
func (cc *mockControl) Logout(ctx context.Context) error {
|
||||||
cc.logf("Logout")
|
cc.logf("Logout")
|
||||||
cc.called("Logout")
|
cc.called("Logout")
|
||||||
@ -329,10 +324,10 @@ func TestStateMachine(t *testing.T) {
|
|||||||
(n.Prefs != nil && n.Prefs.Valid()) ||
|
(n.Prefs != nil && n.Prefs.Valid()) ||
|
||||||
n.BrowseToURL != nil ||
|
n.BrowseToURL != nil ||
|
||||||
n.LoginFinished != nil {
|
n.LoginFinished != nil {
|
||||||
logf("\n%v\n\n", n)
|
logf("%v\n\n", n)
|
||||||
notifies.put(n)
|
notifies.put(n)
|
||||||
} else {
|
} else {
|
||||||
logf("\n(ignored) %v\n\n", n)
|
logf("(ignored) %v\n\n", n)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -583,12 +578,12 @@ func TestStateMachine(t *testing.T) {
|
|||||||
|
|
||||||
// User wants to logout.
|
// User wants to logout.
|
||||||
store.awaitWrite()
|
store.awaitWrite()
|
||||||
t.Logf("\n\nLogout (async)")
|
t.Logf("\n\nLogout")
|
||||||
notifies.expect(2)
|
notifies.expect(2)
|
||||||
b.Logout()
|
b.LogoutSync(context.Background())
|
||||||
{
|
{
|
||||||
nn := notifies.drain(2)
|
nn := notifies.drain(2)
|
||||||
cc.assertCalls("pause", "StartLogout")
|
cc.assertCalls("pause", "Logout")
|
||||||
c.Assert(nn[0].State, qt.IsNotNil)
|
c.Assert(nn[0].State, qt.IsNotNil)
|
||||||
c.Assert(nn[1].Prefs, qt.IsNotNil)
|
c.Assert(nn[1].Prefs, qt.IsNotNil)
|
||||||
c.Assert(ipn.Stopped, qt.Equals, *nn[0].State)
|
c.Assert(ipn.Stopped, qt.Equals, *nn[0].State)
|
||||||
@ -599,7 +594,7 @@ func TestStateMachine(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Let's make the logout succeed.
|
// Let's make the logout succeed.
|
||||||
t.Logf("\n\nLogout (async) - succeed")
|
t.Logf("\n\nLogout - succeed")
|
||||||
notifies.expect(3)
|
notifies.expect(3)
|
||||||
cc.send(nil, "", false, nil)
|
cc.send(nil, "", false, nil)
|
||||||
{
|
{
|
||||||
@ -617,15 +612,15 @@ func TestStateMachine(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// A second logout should reset all prefs.
|
// A second logout should reset all prefs.
|
||||||
t.Logf("\n\nLogout2 (async)")
|
t.Logf("\n\nLogout2")
|
||||||
notifies.expect(1)
|
notifies.expect(1)
|
||||||
b.Logout()
|
b.LogoutSync(context.Background())
|
||||||
{
|
{
|
||||||
nn := notifies.drain(1)
|
nn := notifies.drain(1)
|
||||||
c.Assert(nn[0].Prefs, qt.IsNotNil) // emptyPrefs
|
c.Assert(nn[0].Prefs, qt.IsNotNil) // emptyPrefs
|
||||||
// BUG: the backend has already called StartLogout, and we're
|
// BUG: the backend has already called StartLogout, and we're
|
||||||
// still logged out. So it shouldn't call it again.
|
// still logged out. So it shouldn't call it again.
|
||||||
cc.assertCalls("StartLogout")
|
cc.assertCalls("Logout")
|
||||||
cc.assertCalls()
|
cc.assertCalls()
|
||||||
c.Assert(b.Prefs().LoggedOut(), qt.IsTrue)
|
c.Assert(b.Prefs().LoggedOut(), qt.IsTrue)
|
||||||
c.Assert(b.Prefs().WantRunning(), qt.IsFalse)
|
c.Assert(b.Prefs().WantRunning(), qt.IsFalse)
|
||||||
@ -645,7 +640,7 @@ func TestStateMachine(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Try the synchronous logout feature.
|
// Try the synchronous logout feature.
|
||||||
t.Logf("\n\nLogout3 (sync)")
|
t.Logf("\n\nLogout (sync)")
|
||||||
notifies.expect(0)
|
notifies.expect(0)
|
||||||
b.LogoutSync(context.Background())
|
b.LogoutSync(context.Background())
|
||||||
// NOTE: This returns as soon as cc.Logout() returns, which is okay
|
// NOTE: This returns as soon as cc.Logout() returns, which is okay
|
||||||
|
@ -152,7 +152,7 @@ func WhileTestRunningLogger(t testing.TB) logger.Logf {
|
|||||||
mu sync.RWMutex
|
mu sync.RWMutex
|
||||||
done bool
|
done bool
|
||||||
)
|
)
|
||||||
|
tlogf := logger.TestLogger(t)
|
||||||
logger := func(format string, args ...any) {
|
logger := func(format string, args ...any) {
|
||||||
t.Helper()
|
t.Helper()
|
||||||
|
|
||||||
@ -162,7 +162,7 @@ func WhileTestRunningLogger(t testing.TB) logger.Logf {
|
|||||||
if done {
|
if done {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
t.Logf(format, args...)
|
tlogf(format, args...)
|
||||||
}
|
}
|
||||||
|
|
||||||
// t.Cleanup is run before the test is marked as done, so by acquiring
|
// t.Cleanup is run before the test is marked as done, so by acquiring
|
||||||
|
Loading…
x
Reference in New Issue
Block a user