|
|
@ -419,7 +419,9 @@ func (b *LocalBackend) Start(opts Options) error {
|
|
|
|
b.serverURL = b.prefs.ControlURL
|
|
|
|
b.serverURL = b.prefs.ControlURL
|
|
|
|
hostinfo.RoutableIPs = append(hostinfo.RoutableIPs, b.prefs.AdvertiseRoutes...)
|
|
|
|
hostinfo.RoutableIPs = append(hostinfo.RoutableIPs, b.prefs.AdvertiseRoutes...)
|
|
|
|
hostinfo.RequestTags = append(hostinfo.RequestTags, b.prefs.AdvertiseTags...)
|
|
|
|
hostinfo.RequestTags = append(hostinfo.RequestTags, b.prefs.AdvertiseTags...)
|
|
|
|
b.logf("Start: serverMode=%v; stateKey=%q; tags=%q; routes=%v; url=%v", b.inServerMode, b.stateKey, b.prefs.AdvertiseTags, b.prefs.AdvertiseRoutes, b.prefs.ControlURL)
|
|
|
|
if b.inServerMode || runtime.GOOS == "windows" {
|
|
|
|
|
|
|
|
b.logf("Start: serverMode=%v", b.inServerMode)
|
|
|
|
|
|
|
|
}
|
|
|
|
applyPrefsToHostinfo(hostinfo, b.prefs)
|
|
|
|
applyPrefsToHostinfo(hostinfo, b.prefs)
|
|
|
|
|
|
|
|
|
|
|
|
b.notify = opts.Notify
|
|
|
|
b.notify = opts.Notify
|
|
|
@ -827,7 +829,7 @@ func (b *LocalBackend) loadStateLocked(key StateKey, prefs *Prefs, legacyPath st
|
|
|
|
// If the frontend (e.g. on Windows) supplied the
|
|
|
|
// If the frontend (e.g. on Windows) supplied the
|
|
|
|
// optional/legacy machine key then it's used as the
|
|
|
|
// optional/legacy machine key then it's used as the
|
|
|
|
// value instead of making up a new one.
|
|
|
|
// value instead of making up a new one.
|
|
|
|
b.logf("Using frontend prefs")
|
|
|
|
b.logf("using frontend prefs: %s", prefs.Pretty())
|
|
|
|
b.prefs = prefs.Clone()
|
|
|
|
b.prefs = prefs.Clone()
|
|
|
|
if err := b.initMachineKeyLocked(); err != nil {
|
|
|
|
if err := b.initMachineKeyLocked(); err != nil {
|
|
|
|
return fmt.Errorf("initMachineKeyLocked: %w", err)
|
|
|
|
return fmt.Errorf("initMachineKeyLocked: %w", err)
|
|
|
@ -839,13 +841,13 @@ func (b *LocalBackend) loadStateLocked(key StateKey, prefs *Prefs, legacyPath st
|
|
|
|
if prefs != nil {
|
|
|
|
if prefs != nil {
|
|
|
|
// Backend owns the state, but frontend is trying to migrate
|
|
|
|
// Backend owns the state, but frontend is trying to migrate
|
|
|
|
// state into the backend.
|
|
|
|
// state into the backend.
|
|
|
|
b.logf("Importing frontend prefs into backend store")
|
|
|
|
b.logf("importing frontend prefs into backend store; frontend prefs: %s", prefs.Pretty())
|
|
|
|
if err := b.store.WriteState(key, prefs.ToBytes()); err != nil {
|
|
|
|
if err := b.store.WriteState(key, prefs.ToBytes()); err != nil {
|
|
|
|
return fmt.Errorf("store.WriteState: %v", err)
|
|
|
|
return fmt.Errorf("store.WriteState: %v", err)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
b.logf("Using backend prefs")
|
|
|
|
b.logf("using backend prefs")
|
|
|
|
bs, err := b.store.ReadState(key)
|
|
|
|
bs, err := b.store.ReadState(key)
|
|
|
|
if err != nil {
|
|
|
|
if err != nil {
|
|
|
|
if errors.Is(err, ErrStateNotExist) {
|
|
|
|
if errors.Is(err, ErrStateNotExist) {
|
|
|
@ -857,11 +859,11 @@ func (b *LocalBackend) loadStateLocked(key StateKey, prefs *Prefs, legacyPath st
|
|
|
|
}
|
|
|
|
}
|
|
|
|
b.prefs = NewPrefs()
|
|
|
|
b.prefs = NewPrefs()
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
b.logf("Imported state from relaynode for %q", key)
|
|
|
|
b.logf("imported prefs from relaynode for %q: %v", key, b.prefs.Pretty())
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
b.prefs = NewPrefs()
|
|
|
|
b.prefs = NewPrefs()
|
|
|
|
b.logf("Created empty state for %q", key)
|
|
|
|
b.logf("created empty state for %q: %s", key, b.prefs.Pretty())
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if err := b.initMachineKeyLocked(); err != nil {
|
|
|
|
if err := b.initMachineKeyLocked(); err != nil {
|
|
|
|
return fmt.Errorf("initMachineKeyLocked: %w", err)
|
|
|
|
return fmt.Errorf("initMachineKeyLocked: %w", err)
|
|
|
@ -874,6 +876,7 @@ func (b *LocalBackend) loadStateLocked(key StateKey, prefs *Prefs, legacyPath st
|
|
|
|
if err != nil {
|
|
|
|
if err != nil {
|
|
|
|
return fmt.Errorf("PrefsFromBytes: %v", err)
|
|
|
|
return fmt.Errorf("PrefsFromBytes: %v", err)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
b.logf("backend prefs for %q: %s", key, b.prefs.Pretty())
|
|
|
|
if err := b.initMachineKeyLocked(); err != nil {
|
|
|
|
if err := b.initMachineKeyLocked(); err != nil {
|
|
|
|
return fmt.Errorf("initMachineKeyLocked: %w", err)
|
|
|
|
return fmt.Errorf("initMachineKeyLocked: %w", err)
|
|
|
|
}
|
|
|
|
}
|
|
|
|