ipn/ipnlocal: save prefs to disk on UpdatePrefs

Regression from 6d10655dc3887f1a161015514a8555c175802b4d, which added
UpdatePrefs but didn't write it out to disk.

I'd planned on adding tests to state_test.go which is why I'd earlier
added 46896a93118d0eecbacb4255da2df0349da9b409 to prepare for making
such persistence tests easier to write, but turns out state_test.go
didn't even test UpdatePrefs, so I'm staying out of there.
Instead, this is tested using integration tests.

Fixes #2321

Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
(cherry picked from commit 01e159b6107afa62ee96591ac90149e0ca6d1d77)
This commit is contained in:
Brad Fitzpatrick 2021-07-13 14:03:05 -07:00
parent cd3fd076cc
commit 57b3f17265

View File

@ -757,6 +757,12 @@ func (b *LocalBackend) Start(opts ipn.Options) error {
newPrefs := opts.UpdatePrefs
newPrefs.Persist = b.prefs.Persist
b.prefs = newPrefs
if opts.StateKey != "" {
if err := b.store.WriteState(opts.StateKey, b.prefs.ToBytes()); err != nil {
b.logf("failed to save UpdatePrefs state: %v", err)
}
}
}
wantRunning := b.prefs.WantRunning