ipn: make Notify.Prefs be a *ipn.PrefsView

It is currently a `ipn.PrefsView` which means when we do a JSON roundtrip,
we go from an invalid Prefs to a valid one.

This makes it a pointer, which fixes the JSON roundtrip.

This was introduced in 0957bc5af2.

Signed-off-by: Maisem Ali <maisem@tailscale.com>
This commit is contained in:
Maisem Ali
2022-11-04 03:46:17 +05:00
committed by Maisem Ali
parent c3a5489e72
commit 6afe26575c
6 changed files with 32 additions and 9 deletions

View File

@@ -859,7 +859,8 @@ func (b *LocalBackend) setClientStatus(st controlclient.Status) {
b.logf("Failed to save new controlclient state: %v", err)
}
}
b.send(ipn.Notify{Prefs: prefs.View()})
p := prefs.View()
b.send(ipn.Notify{Prefs: &p})
}
if st.NetMap != nil {
if netMap != nil {
@@ -1089,10 +1090,11 @@ func (b *LocalBackend) Start(opts ipn.Options) error {
nm := b.netMap
state := b.state
b.mu.Unlock()
p := b.prefs
b.send(ipn.Notify{
State: &state,
NetMap: nm,
Prefs: b.prefs,
Prefs: &p,
LoginFinished: new(empty.Message),
})
return nil
@@ -1263,7 +1265,7 @@ func (b *LocalBackend) Start(opts ipn.Options) error {
blid := b.backendLogID
b.logf("Backend: logs: be:%v fe:%v", blid, opts.FrontendLogID)
b.send(ipn.Notify{BackendLogID: &blid})
b.send(ipn.Notify{Prefs: prefs})
b.send(ipn.Notify{Prefs: &prefs})
if !loggedOut && b.hasNodeKey() {
// Even if !WantRunning, we should verify our key, if there
@@ -2350,7 +2352,7 @@ func (b *LocalBackend) setPrefsLockedOnEntry(caller string, newp *ipn.Prefs) ipn
b.authReconfig()
}
b.send(ipn.Notify{Prefs: prefs})
b.send(ipn.Notify{Prefs: &prefs})
return prefs
}

View File

@@ -316,7 +316,7 @@ func TestStateMachine(t *testing.T) {
b.SetNotifyCallback(func(n ipn.Notify) {
if n.State != nil ||
n.Prefs.Valid() ||
(n.Prefs != nil && n.Prefs.Valid()) ||
n.BrowseToURL != nil ||
n.LoginFinished != nil {
logf("\n%v\n\n", n)