diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2019-05-21 13:13:32 +0200 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2019-05-22 15:26:54 +0200 |
commit | d41f190c7f164d2141d1c26eff3ffb8feda04618 (patch) | |
tree | 25fa246ec63edfc6380239aae3a925905e984982 /manager/install.go | |
parent | README: avoid confusion about downloads (diff) | |
download | wireguard-windows-d41f190c7f164d2141d1c26eff3ffb8feda04618.tar.xz wireguard-windows-d41f190c7f164d2141d1c26eff3ffb8feda04618.zip |
firewall: use service-specific SID
Diffstat (limited to '')
-rw-r--r-- | manager/install.go | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/manager/install.go b/manager/install.go index 4a570297..2eddbbbe 100644 --- a/manager/install.go +++ b/manager/install.go @@ -9,6 +9,7 @@ import ( "errors" "os" "time" + "unsafe" "golang.org/x/sys/windows" "golang.org/x/sys/windows/svc" @@ -165,6 +166,14 @@ func InstallTunnel(configPath string) error { if err != nil { return err } + sidType := uint32(windows.SERVICE_SID_TYPE_UNRESTRICTED) + err = windows.ChangeServiceConfig2(service.Handle, windows.SERVICE_CONFIG_SERVICE_SID_INFO, (*byte)(unsafe.Pointer(&sidType))) + if err != nil { + service.Delete() + service.Close() + return err + } + err = service.Start() go trackTunnelService(name, service) // Pass off reference to handle. return err |