mirror of
https://github.com/tailscale/tailscale.git
synced 2025-04-19 05:02:34 +00:00
cmd/tailscale: add debug restun, rebind subcommands
In the hidden debug menu. Change-Id: I20213f1f4e2290d36f9ff561bac0cc767400d5fd Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
parent
63d9c7b9b3
commit
96cab21383
@ -240,6 +240,16 @@ func BugReport(ctx context.Context, note string) (string, error) {
|
|||||||
return strings.TrimSpace(string(body)), nil
|
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.
|
// Status returns the Tailscale daemon's status.
|
||||||
func Status(ctx context.Context) (*ipnstate.Status, error) {
|
func Status(ctx context.Context) (*ipnstate.Status, error) {
|
||||||
return status(ctx, "")
|
return status(ctx, "")
|
||||||
|
@ -70,6 +70,16 @@ var debugCmd = &ffcli.Command{
|
|||||||
Exec: runLocalCreds,
|
Exec: runLocalCreds,
|
||||||
ShortHelp: "print how to access Tailscale local API",
|
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",
|
Name: "prefs",
|
||||||
Exec: runPrefs,
|
Exec: runPrefs,
|
||||||
@ -244,6 +254,15 @@ func runDERPMap(ctx context.Context, args []string) error {
|
|||||||
return nil
|
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 {
|
func runEnv(ctx context.Context, args []string) error {
|
||||||
for _, e := range os.Environ() {
|
for _, e := range os.Environ() {
|
||||||
outln(e)
|
outln(e)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user