control/controlclient: de-pointer Status.PersistView, document more
Updates #cleanup Updates #1909 Change-Id: I31d91e120e3b299508de2136021eab3b34131a44 Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
parent
7053e19562
commit
f5bfdefa00
|
@ -21,7 +21,6 @@ import (
|
||||||
"tailscale.com/types/logger"
|
"tailscale.com/types/logger"
|
||||||
"tailscale.com/types/netmap"
|
"tailscale.com/types/netmap"
|
||||||
"tailscale.com/types/persist"
|
"tailscale.com/types/persist"
|
||||||
"tailscale.com/types/ptr"
|
|
||||||
"tailscale.com/types/structs"
|
"tailscale.com/types/structs"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -644,9 +643,9 @@ func (c *Auto) sendStatus(who string, err error, url string, nm *netmap.NetworkM
|
||||||
|
|
||||||
c.logf("[v1] sendStatus: %s: %v", who, state)
|
c.logf("[v1] sendStatus: %s: %v", who, state)
|
||||||
|
|
||||||
var p *persist.PersistView
|
var p persist.PersistView
|
||||||
if nm != nil && loggedIn && synced {
|
if nm != nil && loggedIn && synced {
|
||||||
p = ptr.To(c.direct.GetPersist())
|
p = c.direct.GetPersist()
|
||||||
} else {
|
} else {
|
||||||
// don't send netmap status, as it's misleading when we're
|
// don't send netmap status, as it's misleading when we're
|
||||||
// not logged in.
|
// not logged in.
|
||||||
|
|
|
@ -61,12 +61,24 @@ func (s State) String() string {
|
||||||
}
|
}
|
||||||
|
|
||||||
type Status struct {
|
type Status struct {
|
||||||
_ structs.Incomparable
|
_ structs.Incomparable
|
||||||
Err error
|
|
||||||
URL string // interactive URL to visit to finish logging in
|
|
||||||
NetMap *netmap.NetworkMap // server-pushed configuration
|
|
||||||
|
|
||||||
Persist *persist.PersistView // locally persisted configuration
|
// Err, if non-nil, is an error that occurred while logging in.
|
||||||
|
//
|
||||||
|
// If it's of type UserVisibleError then it's meant to be shown to users in
|
||||||
|
// their Tailscale client. Otherwise it's just logged to tailscaled's logs.
|
||||||
|
Err error
|
||||||
|
|
||||||
|
// URL, if non-empty, is the interactive URL to visit to finish logging in.
|
||||||
|
URL string
|
||||||
|
|
||||||
|
// NetMap is the latest server-pushed state of the tailnet network.
|
||||||
|
NetMap *netmap.NetworkMap
|
||||||
|
|
||||||
|
// Persist, when Valid, is the locally persisted configuration.
|
||||||
|
//
|
||||||
|
// TODO(bradfitz,maisem): clarify this.
|
||||||
|
Persist persist.PersistView
|
||||||
|
|
||||||
// state is the internal state. It should not be exposed outside this
|
// state is the internal state. It should not be exposed outside this
|
||||||
// package, but we have some automated tests elsewhere that need to
|
// package, but we have some automated tests elsewhere that need to
|
||||||
|
|
|
@ -893,7 +893,6 @@ func (b *LocalBackend) SetDecompressor(fn func() (controlclient.Decompressor, er
|
||||||
func (b *LocalBackend) SetControlClientStatus(st controlclient.Status) {
|
func (b *LocalBackend) SetControlClientStatus(st controlclient.Status) {
|
||||||
// The following do not depend on any data for which we need to lock b.
|
// The following do not depend on any data for which we need to lock b.
|
||||||
if st.Err != nil {
|
if st.Err != nil {
|
||||||
// TODO(crawshaw): display in the UI.
|
|
||||||
if errors.Is(st.Err, io.EOF) {
|
if errors.Is(st.Err, io.EOF) {
|
||||||
b.logf("[v1] Received error: EOF")
|
b.logf("[v1] Received error: EOF")
|
||||||
return
|
return
|
||||||
|
@ -1007,8 +1006,8 @@ func (b *LocalBackend) SetControlClientStatus(st controlclient.Status) {
|
||||||
prefs.ControlURL = prefs.ControlURLOrDefault()
|
prefs.ControlURL = prefs.ControlURLOrDefault()
|
||||||
prefsChanged = true
|
prefsChanged = true
|
||||||
}
|
}
|
||||||
if st.Persist != nil && st.Persist.Valid() {
|
if st.Persist.Valid() {
|
||||||
if !prefs.Persist.View().Equals(*st.Persist) {
|
if !prefs.Persist.View().Equals(st.Persist) {
|
||||||
prefsChanged = true
|
prefsChanged = true
|
||||||
prefs.Persist = st.Persist.AsStruct()
|
prefs.Persist = st.Persist.AsStruct()
|
||||||
}
|
}
|
||||||
|
|
|
@ -162,11 +162,10 @@ func (cc *mockControl) send(err error, url string, loginFinished bool, nm *netma
|
||||||
cc.mu.Unlock()
|
cc.mu.Unlock()
|
||||||
}
|
}
|
||||||
if cc.opts.Observer != nil {
|
if cc.opts.Observer != nil {
|
||||||
pv := cc.persist.View()
|
|
||||||
s := controlclient.Status{
|
s := controlclient.Status{
|
||||||
URL: url,
|
URL: url,
|
||||||
NetMap: nm,
|
NetMap: nm,
|
||||||
Persist: &pv,
|
Persist: cc.persist.View(),
|
||||||
Err: err,
|
Err: err,
|
||||||
}
|
}
|
||||||
if loginFinished {
|
if loginFinished {
|
||||||
|
|
Loading…
Reference in New Issue