diff --git a/ipn/ipnlocal/local.go b/ipn/ipnlocal/local.go index 351bf6aaa..1dde07eaa 100644 --- a/ipn/ipnlocal/local.go +++ b/ipn/ipnlocal/local.go @@ -1088,27 +1088,27 @@ func (b *LocalBackend) loadStateLocked(key ipn.StateKey, prefs *ipn.Prefs, legac b.logf("using backend prefs") bs, err := b.store.ReadState(key) - if err != nil { - if errors.Is(err, ipn.ErrStateNotExist) { - if legacyPath != "" { - b.prefs, err = ipn.LoadPrefs(legacyPath) - if err != nil { - if !errors.Is(err, os.ErrNotExist) { - b.logf("failed to load legacy prefs: %v", err) - } - b.prefs = ipn.NewPrefs() - } else { - b.logf("imported prefs from relaynode for %q: %v", key, b.prefs.Pretty()) + switch { + case errors.Is(err, ipn.ErrStateNotExist): + if legacyPath != "" { + b.prefs, err = ipn.LoadPrefs(legacyPath) + if err != nil { + if !errors.Is(err, os.ErrNotExist) { + b.logf("failed to load legacy prefs: %v", err) } - } else { b.prefs = ipn.NewPrefs() - b.logf("created empty state for %q: %s", key, b.prefs.Pretty()) - } - if err := b.initMachineKeyLocked(); err != nil { - return fmt.Errorf("initMachineKeyLocked: %w", err) + } else { + b.logf("imported prefs from relaynode for %q: %v", key, b.prefs.Pretty()) } - return nil + } else { + b.prefs = ipn.NewPrefs() + b.logf("created empty state for %q: %s", key, b.prefs.Pretty()) + } + if err := b.initMachineKeyLocked(); err != nil { + return fmt.Errorf("initMachineKeyLocked: %w", err) } + return nil + case err != nil: return fmt.Errorf("store.ReadState(%q): %v", key, err) } b.prefs, err = ipn.PrefsFromBytes(bs, false)