aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/service/install.go
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2019-04-29 13:30:28 +0200
committerJason A. Donenfeld <Jason@zx2c4.com>2019-04-29 13:44:04 +0200
commitfe1f44fc37c6442617d02010077292d9537e5b3b (patch)
tree86c554d239919013446eb101309f6488535766a3 /service/install.go
parentupdater: use /qb instead of /quiet (diff)
downloadwireguard-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.go6
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 {