Skip to content

Commit

Permalink
cmd/tailscale: add debug restun, rebind subcommands
Browse files Browse the repository at this point in the history
In the hidden debug menu.

Change-Id: I20213f1f4e2290d36f9ff561bac0cc767400d5fd
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
  • Loading branch information
bradfitz committed Dec 29, 2021
1 parent 63d9c7b commit 96cab21
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 0 deletions.
10 changes: 10 additions & 0 deletions client/tailscale/tailscale.go
Expand Up @@ -240,6 +240,16 @@ func BugReport(ctx context.Context, note string) (string, error) {
return strings.TrimSpace(string(body)), nil
}

// DebugAction invokes a debug action, such as "rebind" or "restun".
// These are development tools and subject to change or removal over time.
func DebugAction(ctx context.Context, action string) error {
body, err := send(ctx, "POST", "/localapi/v0/debug?action="+url.QueryEscape(action), 200, nil)
if err != nil {
return fmt.Errorf("error %w: %s", err, body)
}
return nil
}

// Status returns the Tailscale daemon's status.
func Status(ctx context.Context) (*ipnstate.Status, error) {
return status(ctx, "")
Expand Down
19 changes: 19 additions & 0 deletions cmd/tailscale/cli/debug.go
Expand Up @@ -70,6 +70,16 @@ var debugCmd = &ffcli.Command{
Exec: runLocalCreds,
ShortHelp: "print how to access Tailscale local API",
},
{
Name: "restun",
Exec: localAPIAction("restun"),
ShortHelp: "force a magicsock restun",
},
{
Name: "rebind",
Exec: localAPIAction("rebind"),
ShortHelp: "force a magicsock rebind",
},
{
Name: "prefs",
Exec: runPrefs,
Expand Down Expand Up @@ -244,6 +254,15 @@ func runDERPMap(ctx context.Context, args []string) error {
return nil
}

func localAPIAction(action string) func(context.Context, []string) error {
return func(ctx context.Context, args []string) error {
if len(args) > 0 {
return errors.New("unexpected arguments")
}
return tailscale.DebugAction(ctx, action)
}
}

func runEnv(ctx context.Context, args []string) error {
for _, e := range os.Environ() {
outln(e)
Expand Down

0 comments on commit 96cab21

Please sign in to comment.