wgengine/router/dns: run ipconfig /registerdns async, log timing

Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
Brad Fitzpatrick 2020-11-03 09:59:50 -08:00 committed by Brad Fitzpatrick
parent 1036f51a56
commit 28f6552646

View File

@ -9,6 +9,7 @@ import (
"os/exec" "os/exec"
"strings" "strings"
"syscall" "syscall"
"time"
"github.com/tailscale/wireguard-go/tun" "github.com/tailscale/wireguard-go/tun"
"golang.org/x/sys/windows/registry" "golang.org/x/sys/windows/registry"
@ -96,12 +97,19 @@ func (m windowsManager) Up(config Config) error {
// have changed, which makes the DNS settings actually take // have changed, which makes the DNS settings actually take
// effect. // effect.
// //
// This command can take a few seconds to run. // This command can take a few seconds to run, so run it async, best effort.
go func() {
t0 := time.Now()
m.logf("running ipconfig /registerdns ...")
cmd := exec.Command("ipconfig", "/registerdns") cmd := exec.Command("ipconfig", "/registerdns")
cmd.SysProcAttr = &syscall.SysProcAttr{HideWindow: true} cmd.SysProcAttr = &syscall.SysProcAttr{HideWindow: true}
d := time.Since(t0).Round(time.Millisecond)
if err := cmd.Run(); err != nil { if err := cmd.Run(); err != nil {
return fmt.Errorf("running ipconfig /registerdns: %w", err) m.logf("error running ipconfig /registerdns after %v: %v", d, err)
} else {
m.logf("ran ipconfig /registerdns in %v", d)
} }
}()
return nil return nil
} }