|
|
|
@ -134,7 +134,6 @@ type LocalBackend struct {
|
|
|
|
|
portpoll *portlist.Poller // may be nil
|
|
|
|
|
portpollOnce sync.Once // guards starting readPoller
|
|
|
|
|
gotPortPollRes chan struct{} // closed upon first readPoller result
|
|
|
|
|
serverURL string // tailcontrol URL
|
|
|
|
|
newDecompressor func() (controlclient.Decompressor, error)
|
|
|
|
|
varRoot string // or empty if SetVarRoot never called
|
|
|
|
|
sshAtomicBool atomic.Bool
|
|
|
|
@ -1206,7 +1205,7 @@ func (b *LocalBackend) Start(opts ipn.Options) error {
|
|
|
|
|
loggedOut := prefs.LoggedOut()
|
|
|
|
|
|
|
|
|
|
b.inServerMode = prefs.ForceDaemon()
|
|
|
|
|
b.serverURL = prefs.ControlURLOrDefault()
|
|
|
|
|
serverURL := prefs.ControlURLOrDefault()
|
|
|
|
|
if b.inServerMode || runtime.GOOS == "windows" {
|
|
|
|
|
b.logf("Start: serverMode=%v", b.inServerMode)
|
|
|
|
|
}
|
|
|
|
@ -1259,7 +1258,7 @@ func (b *LocalBackend) Start(opts ipn.Options) error {
|
|
|
|
|
GetMachinePrivateKey: b.createGetMachinePrivateKeyFunc(),
|
|
|
|
|
Logf: logger.WithPrefix(b.logf, "control: "),
|
|
|
|
|
Persist: *persistv,
|
|
|
|
|
ServerURL: b.serverURL,
|
|
|
|
|
ServerURL: serverURL,
|
|
|
|
|
AuthKey: opts.AuthKey,
|
|
|
|
|
Hostinfo: hostinfo,
|
|
|
|
|
KeepAlive: true,
|
|
|
|
@ -1768,9 +1767,7 @@ func (b *LocalBackend) validPopBrowserURL(urlStr string) bool {
|
|
|
|
|
case "https":
|
|
|
|
|
return true
|
|
|
|
|
case "http":
|
|
|
|
|
b.mu.Lock()
|
|
|
|
|
serverURL := b.serverURL
|
|
|
|
|
b.mu.Unlock()
|
|
|
|
|
serverURL := b.Prefs().ControlURLOrDefault()
|
|
|
|
|
// If the control server is using plain HTTP (likely a dev server),
|
|
|
|
|
// then permit http://.
|
|
|
|
|
return strings.HasPrefix(serverURL, "http://")
|
|
|
|
|