aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/main.go
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2019-08-28 22:30:35 -0600
committerJason A. Donenfeld <Jason@zx2c4.com>2019-08-30 08:47:21 -0600
commit2bbd162221e56e0312593cb05956c100f253ff98 (patch)
tree2dab80c185282b6cb9270836cef88f852afe5a40 /main.go
parentelevate: use more strict check for admin group (diff)
downloadwireguard-windows-2bbd162221e56e0312593cb05956c100f253ff98.tar.xz
wireguard-windows-2bbd162221e56e0312593cb05956c100f253ff98.zip
elevate: check for desktop admin ownership
Diffstat (limited to 'main.go')
-rw-r--r--main.go11
1 files changed, 11 insertions, 0 deletions
diff --git a/main.go b/main.go
index e7070335..ef14afde 100644
--- a/main.go
+++ b/main.go
@@ -80,6 +80,13 @@ func checkForAdminGroup() {
}
}
+func checkForAdminDesktop() {
+ adminDesktop, err := elevate.IsAdminDesktop()
+ if !adminDesktop && err == nil {
+ fatal("WireGuard is running, but the UI is only accessible from desktops of the Builtin Administrators group.")
+ }
+}
+
func execElevatedManagerServiceInstaller() error {
path, err := os.Executable()
if err != nil {
@@ -123,8 +130,12 @@ func main() {
go ui.WaitForRaiseUIThenQuit()
err := manager.InstallManager()
if err != nil {
+ if err == manager.ErrManagerAlreadyRunning {
+ checkForAdminDesktop()
+ }
fatal(err)
}
+ checkForAdminDesktop()
time.Sleep(30 * time.Second)
fatal("WireGuard system tray icon did not appear after 30 seconds.")
return