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/cmd
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>
2 years ago
..
addlicense cmd/addlicense: add command to add licenseheaders to generated code 3 years ago
cloner cmd/{cloner,viewer}: add support for map values with pointers 2 years ago
containerboot all: standardize on LocalAPI 2 years ago
derper all: use strs.CutPrefix and strs.CutSuffix more 2 years ago
derpprobe cmd/derpprobe: add -once flag for one-off CLI diagnostics 2 years ago
gitops-pusher cmd/gitops-pusher: standardize hujson before posting to validate (#5525) 2 years ago
hello refactor: move from io/ioutil to io and os packages 2 years ago
mkmanifest cmd/{tailscale,tailscaled}: embed manifest into Windows binaries 2 years ago
mkpkg cmd/mkpkg: use package flag (#4373) 2 years ago
netlogfmt cmd/netlogfmt: handle any stream of network logs (#6108) 2 years ago
nginx-auth cmd/nginx-auth: add experimental status badge to README 2 years ago
pgproxy cmd/pgproxy: link to blog post at the top. 2 years ago
printdep Docker: add ALPINE.txt to manage alpine versions 2 years ago
proxy-to-grafana all: gofmt for Go 1.19 2 years ago
speedtest net/speedtest: retune to meet iperf on localhost in a VM 2 years ago
ssh-auth-none-demo ssh/tailssh: add password-forcing workaround for buggy SSH clients 2 years ago
stunc cmd/stunc: add command for making debug stun requests 2 years ago
tailscale cmd/tailscale: de-punycode hostnames in status display 2 years ago
tailscaled ipn/ipnserver: change Server to let LocalBackend be supplied async 2 years ago
testcontrol all: use any instead of interface{} 2 years ago
tsconnect ipn/ipnserver: change Server to let LocalBackend be supplied async 2 years ago
tsshd all: remove old +build tags 2 years ago
viewer all: fix spelling mistakes 2 years ago