From 07219caf360cb13201fe117e19849f172ef30bb0 Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Mon, 10 Jun 2019 11:37:54 +0200 Subject: main: add wintun cleanup helper --- main.go | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/main.go b/main.go index 4df91746..e4c569cb 100644 --- a/main.go +++ b/main.go @@ -13,6 +13,7 @@ import ( "time" "golang.org/x/sys/windows" + "golang.zx2c4.com/wireguard/tun/wintun" "golang.zx2c4.com/wireguard/windows/manager" "golang.zx2c4.com/wireguard/windows/ringlogger" @@ -30,6 +31,7 @@ var flags = [...]string{ "/tunnelservice CONFIG_PATH", "/ui CMD_READ_HANDLE CMD_WRITE_HANDLE CMD_EVENT_HANDLE LOG_MAPPING_HANDLE", "/dumplog OUTPUT_PATH", + "/wintun /deleteall", } func fatal(v ...interface{}) { @@ -208,6 +210,34 @@ func main() { fatal(err) } return + case "/wintun": + if len(os.Args) < 3 { + usage() + } + switch os.Args[2] { + case "/deleteall": + if len(os.Args) != 3 { + usage() + } + deleted, rebootRequired, errors := wintun.DeleteAllInterfaces() + interfaceString := "no interfaces" + if len(deleted) > 0 { + interfaceString = fmt.Sprintf("interfaces %v", deleted) + } + errorString := "" + if len(errors) > 0 { + errorString = fmt.Sprintf(", encountering errors %v", errors) + } + rebootString := "" + if rebootRequired { + rebootString = " A reboot is required." + } + windows.MessageBox(0, windows.StringToUTF16Ptr(fmt.Sprintf("Deleted %s%s.%s", + interfaceString, errorString, rebootString)), windows.StringToUTF16Ptr("Wintun Cleanup"), windows.MB_ICONINFORMATION) + return + default: + usage() + } } usage() } -- cgit v1.2.3-59-g8ed1b