diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2019-03-02 05:54:25 +0100 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2019-03-02 07:07:05 +0100 |
commit | 9e43735dfe6a390d2779e3ba226ec3d0bb51a645 (patch) | |
tree | 3e15404826ea98d13b938417cc7fcd145b9d7f42 /service/install.go | |
parent | syntax: flat border (diff) | |
download | wireguard-windows-9e43735dfe6a390d2779e3ba226ec3d0bb51a645.tar.xz wireguard-windows-9e43735dfe6a390d2779e3ba226ec3d0bb51a645.zip |
ipc: work out service state transitions
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to '')
-rw-r--r-- | service/install.go | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/service/install.go b/service/install.go index 9a57504f..95a419de 100644 --- a/service/install.go +++ b/service/install.go @@ -13,6 +13,7 @@ import ( "golang.org/x/sys/windows/svc/mgr" "golang.zx2c4.com/wireguard/windows/conf" "os" + "syscall" "time" ) @@ -141,11 +142,11 @@ func InstallTunnel(configPath string) error { } for { service, err = m.OpenService(serviceName) - if err != nil { + if err != nil && err != syscall.Errno(ERROR_SERVICE_MARKED_FOR_DELETE) { break } service.Close() - time.Sleep(time.Second) + time.Sleep(time.Second / 3) } } @@ -177,7 +178,7 @@ func UninstallTunnel(name string) error { service.Control(svc.Stop) err = service.Delete() err2 := service.Close() - if err != nil { + if err != nil && err != syscall.Errno(ERROR_SERVICE_MARKED_FOR_DELETE) { return err } return err2 |