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/ipnserver
Nick Khyl 892f8a9582 various: allow tailscaled shutdown via LocalAPI
A customer wants to allow their employees to restart tailscaled at will, when access rights and MDM policy allow it,
as a way to fully reset client state and re-create the tunnel in case of connectivity issues.

On Windows, the main tailscaled process runs as a child of a service process. The service restarts the child
when it exits (or crashes) until the service itself is stopped. Regular (non-admin) users can't stop the service,
and allowing them to do so isn't ideal, especially in managed or multi-user environments.

In this PR, we add a LocalAPI endpoint that instructs ipnserver.Server, and by extension the tailscaled process,
to shut down. The service then restarts the child tailscaled. Shutting down tailscaled requires LocalAPI write access
and an enabled policy setting.

Updates tailscale/corp#32674
Updates tailscale/corp#32675

Signed-off-by: Nick Khyl <nickk@tailscale.com>
2 months ago
..
actor.go ipn/ipnauth: don't crash on OpenBSD trying to log username of unknown peer 2 months ago
proxyconnect.go Switch logging service from log.tailscale.io to log.tailscale.com (#14398) 12 months ago
proxyconnect_js.go all: update copyright and license headers 3 years ago
server.go various: allow tailscaled shutdown via LocalAPI 2 months ago
server_fortest.go ipn/ipn{server,test}: extract the LocalAPI test client and server into ipntest 7 months ago
server_test.go various: allow tailscaled shutdown via LocalAPI 2 months ago
waiterset_test.go ipn/ipn{server,test}: extract the LocalAPI test client and server into ipntest 7 months ago