diff options
-rw-r--r-- | service/errors.go | 8 | ||||
-rw-r--r-- | service/install.go | 12 | ||||
-rw-r--r-- | service/ipc_server.go | 6 | ||||
-rw-r--r-- | service/tunneltracker.go | 4 |
4 files changed, 12 insertions, 18 deletions
diff --git a/service/errors.go b/service/errors.go index b76ef656..e71f0d71 100644 --- a/service/errors.go +++ b/service/errors.go @@ -94,10 +94,4 @@ func combineErrors(err error, serviceError Error) error { } } return err -} - -const ( - serviceDOES_NOT_EXIST uint32 = 0x00000424 - serviceMARKED_FOR_DELETE uint32 = 0x00000430 - serviceNEVER_STARTED uint32 = 0x00000435 -) +}
\ No newline at end of file diff --git a/service/install.go b/service/install.go index a989ac0e..1d977262 100644 --- a/service/install.go +++ b/service/install.go @@ -8,12 +8,12 @@ package service import ( "errors" "os" - "syscall" "time" "golang.org/x/sys/windows" "golang.org/x/sys/windows/svc" "golang.org/x/sys/windows/svc/mgr" + "golang.zx2c4.com/wireguard/windows/conf" ) @@ -130,22 +130,22 @@ func InstallTunnel(configPath string) error { service, err := m.OpenService(serviceName) if err == nil { status, err := service.Query() - if err != nil && err != syscall.Errno(serviceMARKED_FOR_DELETE) { + if err != nil && err != windows.ERROR_SERVICE_MARKED_FOR_DELETE { service.Close() return err } - if status.State != svc.Stopped && err != syscall.Errno(serviceMARKED_FOR_DELETE) { + if status.State != svc.Stopped && err != windows.ERROR_SERVICE_MARKED_FOR_DELETE { service.Close() return errors.New("Tunnel already installed and running") } err = service.Delete() service.Close() - if err != nil && err != syscall.Errno(serviceMARKED_FOR_DELETE) { + if err != nil && err != windows.ERROR_SERVICE_MARKED_FOR_DELETE { return err } for { service, err = m.OpenService(serviceName) - if err != nil && err != syscall.Errno(serviceMARKED_FOR_DELETE) { + if err != nil && err != windows.ERROR_SERVICE_MARKED_FOR_DELETE { break } service.Close() @@ -185,7 +185,7 @@ func UninstallTunnel(name string) error { service.Control(svc.Stop) err = service.Delete() err2 := service.Close() - if err != nil && err != syscall.Errno(serviceMARKED_FOR_DELETE) { + if err != nil && err != windows.ERROR_SERVICE_MARKED_FOR_DELETE { return err } return err2 diff --git a/service/ipc_server.go b/service/ipc_server.go index 9d9f7d99..766f4178 100644 --- a/service/ipc_server.go +++ b/service/ipc_server.go @@ -15,12 +15,12 @@ import ( "os" "sync" "sync/atomic" - "syscall" "time" "github.com/Microsoft/go-winio" "golang.org/x/sys/windows" "golang.org/x/sys/windows/svc" + "golang.zx2c4.com/wireguard/windows/conf" "golang.zx2c4.com/wireguard/windows/updater" ) @@ -121,7 +121,7 @@ func (s *ManagerService) Start(tunnelName string, unused *uintptr) error { func (s *ManagerService) Stop(tunnelName string, _ *uintptr) error { err := UninstallTunnel(tunnelName) - if err == syscall.Errno(serviceDOES_NOT_EXIST) { + if err == windows.ERROR_SERVICE_DOES_NOT_EXIST { _, notExistsError := conf.LoadFromName(tunnelName) if notExistsError == nil { return nil @@ -141,7 +141,7 @@ func (s *ManagerService) WaitForStop(tunnelName string, _ *uintptr) error { } for { service, err := m.OpenService(serviceName) - if err == nil || err == syscall.Errno(serviceMARKED_FOR_DELETE) { + if err == nil || err == windows.ERROR_SERVICE_MARKED_FOR_DELETE { service.Close() time.Sleep(time.Second / 3) } else { diff --git a/service/tunneltracker.go b/service/tunneltracker.go index 9e413c22..4c61925a 100644 --- a/service/tunneltracker.go +++ b/service/tunneltracker.go @@ -107,7 +107,7 @@ func trackTunnelService(tunnelName string, service *mgr.Service) { checkForDisabled := func() (shouldReturn bool) { config, err := service.Config() - if err == syscall.Errno(serviceMARKED_FOR_DELETE) || config.StartType == windows.SERVICE_DISABLED { + if err == windows.ERROR_SERVICE_MARKED_FOR_DELETE || config.StartType == windows.SERVICE_DISABLED { log.Printf("[%s] Found disabled service via timeout, so deleting", tunnelName) service.Delete() trackedTunnelsLock.Lock() @@ -163,7 +163,7 @@ func trackTunnelService(tunnelName string, service *mgr.Service) { } } else { switch notifier.ServiceStatus.Win32ExitCode { - case uint32(windows.NO_ERROR), serviceNEVER_STARTED: + case uint32(windows.NO_ERROR), uint32(windows.ERROR_SERVICE_NEVER_STARTED): default: tunnelError = syscall.Errno(notifier.ServiceStatus.Win32ExitCode) } |