mirror of
https://github.com/netbirdio/netbird.git
synced 2026-10-21 04:49:10 +02:00
[client] Add IsLoginRequiredCached for iOS mobile client (#6447)
Expose a network-free login-required check backed by the in-memory status recorder. Unlike IsLoginRequired(), which creates a fresh auth client and performs a blocking network call, IsLoginRequiredCached() reports whether the LAST observed management error was an auth failure (PermissionDenied/ InvalidArgument). This lets the iOS connection listener detect a mid-session token expiry from within onDisconnected during teardown without blocking on a slow or unavailable network.
This commit is contained in:
@@ -320,6 +320,16 @@ func (c *Client) RemoveConnectionListener() {
|
|||||||
c.recorder.RemoveConnectionListener()
|
c.recorder.RemoveConnectionListener()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// IsLoginRequiredCached reports whether the LAST observed management error was an
|
||||||
|
// auth failure (PermissionDenied/InvalidArgument), using the in-memory status
|
||||||
|
// recorder. Unlike IsLoginRequired() it performs NO network call, so it is safe to
|
||||||
|
// call from the connection listener during teardown (e.g. onDisconnected) without
|
||||||
|
// blocking on a slow or unavailable network. Returns false while connected to
|
||||||
|
// management or when the last error was not auth-related.
|
||||||
|
func (c *Client) IsLoginRequiredCached() bool {
|
||||||
|
return c.recorder.IsLoginRequired()
|
||||||
|
}
|
||||||
|
|
||||||
func (c *Client) IsLoginRequired() bool {
|
func (c *Client) IsLoginRequired() bool {
|
||||||
var ctx context.Context
|
var ctx context.Context
|
||||||
//nolint
|
//nolint
|
||||||
|
|||||||
Reference in New Issue
Block a user