mirror of
https://github.com/tailscale/tailscale.git
synced 2024-12-01 14:05:39 +00:00
8a7d35594d
Previously, there was no server round trip required to log out, so when you asked ipnlocal to Logout(), it could clear the netmap immediately and switch to NeedsLogin state. In v1.8, we added a true Logout operation. ipn.Logout() would trigger an async cc.StartLogout() and *also* immediately switch to NeedsLogin. Unfortunately, some frontends would see NeedsLogin and immediately trigger a new StartInteractiveLogin() operation, before the controlclient auth state machine actually acted on the Logout command, thus accidentally invalidating the entire logout operation, retaining the netmap, and violating the user's expectations. Instead, add a new LogoutFinished signal from controlclient (paralleling LoginFinished) and, upon starting a logout, don't update the ipn state machine until it's received. Updates: #1918 (BUG-2) Signed-off-by: Avery Pennarun <apenwarr@tailscale.com> |
||
---|---|---|
.. | ||
auto.go | ||
client.go | ||
controlclient_test.go | ||
debug_test.go | ||
debug.go | ||
direct_test.go | ||
direct.go | ||
hostinfo_linux.go | ||
hostinfo_windows.go | ||
map_test.go | ||
map.go | ||
sign_supported.go | ||
sign_unsupported.go | ||
sign.go | ||
status.go |