You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tailscale/ipn
Brad Fitzpatrick e8cc78b1af ipn/ipnserver: change Server to let LocalBackend be supplied async
This is step 1 of de-special-casing of Windows and letting the
LocalAPI HTTP server start serving immediately, even while the rest of
the world (notably the Engine and its TUN device) are being created,
which can take a few to dozens of seconds on Windows.

With this change, the ipnserver.New function changes to not take an
Engine and to return immediately, not returning an error, and let its
Run run immediately. If its ServeHTTP is called when it doesn't yet
have a LocalBackend, it returns an error. A TODO in there shows where
a future handler will serve status before an engine is available.

Future changes will:

* delete a bunch of tailscaled_windows.go code and use this new API
* add the ipnserver.Server ServerHTTP handler to await the engine
  being available
* use that handler in the Windows GUI client

Updates #6522

Change-Id: Iae94e68c235e850b112a72ea24ad0e0959b568ee
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
3 years ago
..
ipnauth ipn/*: make new WindowsUserID type to consolidate docs 3 years ago
ipnlocal ipn/*: make new WindowsUserID type to consolidate docs 3 years ago
ipnserver ipn/ipnserver: change Server to let LocalBackend be supplied async 3 years ago
ipnstate cmd/tailscale: add start of "debug derp" subcommand 3 years ago
localapi ipn: add a WatchIPNBus option bit to subscribe to EngineStatus changes 3 years ago
policy ipn/policy: treat DNS service as interesting so it's not filtered out 4 years ago
store all: remove old +build tags 3 years ago
backend.go ipn: add a WatchIPNBus option bit to subscribe to EngineStatus changes 3 years ago
doc.go ipn: add WebServerConfig, add views 3 years ago
fake_test.go ipn/ipnlocal: add support for multiple user profiles 3 years ago
ipn_clone.go ipn: add ability to name profiles 3 years ago
ipn_view.go ipn: add ability to name profiles 3 years ago
message.go ipn/ipnserver: remove IPN protocol server 3 years ago
prefs.go ipn/*: make new WindowsUserID type to consolidate docs 3 years ago
prefs_test.go ipn: add ability to name profiles 3 years ago
serve.go cmd/tailscale/cli, ipn: move serve CLI funcs on to ServeConfig (#6401) 3 years ago
store.go cmd/tailscale/cli, ipn: move serve CLI funcs on to ServeConfig (#6401) 3 years ago