diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2019-04-29 13:30:28 +0200 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2019-04-29 13:44:04 +0200 |
commit | fe1f44fc37c6442617d02010077292d9537e5b3b (patch) | |
tree | 86c554d239919013446eb101309f6488535766a3 /service/install.go | |
parent | updater: use /qb instead of /quiet (diff) | |
download | wireguard-windows-fe1f44fc37c6442617d02010077292d9537e5b3b.tar.xz wireguard-windows-fe1f44fc37c6442617d02010077292d9537e5b3b.zip |
service: improve state transitions
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to '')
-rw-r--r-- | service/install.go | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/service/install.go b/service/install.go index 95c42b2f..e20658e9 100644 --- a/service/install.go +++ b/service/install.go @@ -129,17 +129,17 @@ func InstallTunnel(configPath string) error { service, err := m.OpenService(serviceName) if err == nil { status, err := service.Query() - if err != nil { + if err != nil && err != syscall.Errno(serviceMARKED_FOR_DELETE) { service.Close() return err } - if status.State != svc.Stopped { + if status.State != svc.Stopped && err != syscall.Errno(serviceMARKED_FOR_DELETE) { service.Close() return errors.New("Tunnel already installed and running") } err = service.Delete() service.Close() - if err != nil { + if err != nil && err != syscall.Errno(serviceMARKED_FOR_DELETE) { return err } for { |