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>
2022-11-28 09:48:33 -08:00
..
ipnauth ipn/*: make new WindowsUserID type to consolidate docs 2022-11-27 12:08:07 -08:00
ipnlocal ipn/*: make new WindowsUserID type to consolidate docs 2022-11-27 12:08:07 -08:00
ipnserver ipn/ipnserver: change Server to let LocalBackend be supplied async 2022-11-28 09:48:33 -08:00
ipnstate cmd/tailscale: add start of "debug derp" subcommand 2022-11-26 15:40:25 -08:00
localapi ipn: add a WatchIPNBus option bit to subscribe to EngineStatus changes 2022-11-26 15:51:33 -08:00
policy ipn/policy: treat DNS service as interesting so it's not filtered out 2021-12-03 12:55:54 -08:00
store all: remove old +build tags 2022-11-04 07:25:42 -07:00
backend.go ipn: add a WatchIPNBus option bit to subscribe to EngineStatus changes 2022-11-26 15:51:33 -08:00
doc.go ipn: add WebServerConfig, add views 2022-11-09 06:17:45 -08:00
fake_test.go ipn/ipnlocal: add support for multiple user profiles 2022-11-11 10:45:47 +05:00
ipn_clone.go ipn: add ability to name profiles 2022-11-22 04:03:24 +05:00
ipn_view.go ipn: add ability to name profiles 2022-11-22 04:03:24 +05:00
message.go ipn/ipnserver: remove IPN protocol server 2022-11-25 08:12:06 -08:00
prefs.go ipn/*: make new WindowsUserID type to consolidate docs 2022-11-27 12:08:07 -08:00
prefs_test.go ipn: add ability to name profiles 2022-11-22 04:03:24 +05:00
serve.go cmd/tailscale/cli, ipn: move serve CLI funcs on to ServeConfig (#6401) 2022-11-19 09:42:14 -05:00
store.go cmd/tailscale/cli, ipn: move serve CLI funcs on to ServeConfig (#6401) 2022-11-19 09:42:14 -05:00