tailscale/ipn
Brad Fitzpatrick 515866d7c6 ipn, ipnserver, cmd/tailscale: add "server mode" support on Windows
This partially (but not yet fully) migrates Windows to tailscaled's
StateStore storage system.

This adds a new bool Pref, ForceDaemon, defined as:

// ForceDaemon specifies whether a platform that normally
// operates in "client mode" (that is, requires an active user
// logged in with the GUI app running) should keep running after the
// GUI ends and/or the user logs out.
//
// The only current applicable platform is Windows. This
// forced Windows to go into "server mode" where Tailscale is
// running even with no users logged in. This might also be
// used for macOS in the future. This setting has no effect
// for Linux/etc, which always operate in daemon mode.

Then, when ForceDaemon becomes true, we now write use the StateStore
to track which user started it in server mode, and store their prefs
under that key.

The ipnserver validates the connections/identities and informs that
LocalBackend which userid is currently in charge.

The GUI can then enable/disable server mode at runtime, without using
the CLI.

But the "tailscale up" CLI was also fixed, so Windows users can use
authkeys or ACL tags, etc.

Updates #275
2020-10-12 14:28:21 -07:00
..
ipnserver ipn, ipnserver, cmd/tailscale: add "server mode" support on Windows 2020-10-12 14:28:21 -07:00
ipnstate Revert "all: keep UserProfiles a slice instead of a map for longer" 2020-09-30 08:43:31 -07:00
policy ipn, ipn/policy: filter portlist to a short list of "interesting" ports 2020-04-01 10:03:44 -07:00
backend.go ipn, ipnserver, cmd/tailscale: add "server mode" support on Windows 2020-10-12 14:28:21 -07:00
doc.go Move Linux client & common packages into a public repo. 2020-02-09 09:32:57 -08:00
fake_test.go cmd/tailscale/cli: add basic 'down' subcommand 2020-08-25 18:54:29 -07:00
handle.go ipn: add Login backend command for sign-in with token 2020-07-14 13:09:36 +02:00
local.go ipn, ipnserver, cmd/tailscale: add "server mode" support on Windows 2020-10-12 14:28:21 -07:00
loglines_test.go ipn: simplify TestLocalLogLines, defer a Shutdown of its LocalBackend 2020-09-04 08:36:07 -07:00
message.go cmd/tailscale/cli: add basic 'down' subcommand 2020-08-25 18:54:29 -07:00
message_test.go ipn: add Login backend command for sign-in with token 2020-07-14 13:09:36 +02:00
prefs.go ipn, ipnserver, cmd/tailscale: add "server mode" support on Windows 2020-10-12 14:28:21 -07:00
prefs_test.go ipn, ipnserver, cmd/tailscale: add "server mode" support on Windows 2020-10-12 14:28:21 -07:00
store.go ipn, ipnserver, cmd/tailscale: add "server mode" support on Windows 2020-10-12 14:28:21 -07:00
store_test.go Add tstest.PanicOnLog(), and fix various problems detected by this. 2020-05-13 23:12:35 -04:00