diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2019-06-10 11:37:54 +0200 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2019-06-10 11:43:55 +0200 |
commit | 07219caf360cb13201fe117e19849f172ef30bb0 (patch) | |
tree | 23de70b388edf7bf02a39ed81e76cfd92b681a83 | |
parent | tunnel: generate GUIDs deterministically (diff) | |
download | wireguard-windows-07219caf360cb13201fe117e19849f172ef30bb0.tar.xz wireguard-windows-07219caf360cb13201fe117e19849f172ef30bb0.zip |
main: add wintun cleanup helper
Diffstat (limited to '')
-rw-r--r-- | main.go | 30 |
1 files changed, 30 insertions, 0 deletions
@@ -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() } |