mirror of
https://github.com/rwinkhart/sys.git
synced 2026-08-30 13:56:45 -04:00
windows/svc: add missing Accept commands
Add the remaining AcceptX commands (AcceptParamChange, AcceptNetBindChange, AcceptHardwareProfileChange, AcceptPowerEvent, and AcceptSessionChange) to the windows/svc package. Also add support for these to updateStatus such that a service can actually accept these commands. Change-Id: I11191e7798489b3222a3e76ba55129f10fd202ab Reviewed-on: https://go-review.googlesource.com/46722 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
committed by
Brad Fitzpatrick
parent
50298aa7a9
commit
f7928cfef4
+23
-3
@@ -56,9 +56,14 @@ const (
|
|||||||
type Accepted uint32
|
type Accepted uint32
|
||||||
|
|
||||||
const (
|
const (
|
||||||
AcceptStop = Accepted(windows.SERVICE_ACCEPT_STOP)
|
AcceptStop = Accepted(windows.SERVICE_ACCEPT_STOP)
|
||||||
AcceptShutdown = Accepted(windows.SERVICE_ACCEPT_SHUTDOWN)
|
AcceptShutdown = Accepted(windows.SERVICE_ACCEPT_SHUTDOWN)
|
||||||
AcceptPauseAndContinue = Accepted(windows.SERVICE_ACCEPT_PAUSE_CONTINUE)
|
AcceptPauseAndContinue = Accepted(windows.SERVICE_ACCEPT_PAUSE_CONTINUE)
|
||||||
|
AcceptParamChange = Accepted(windows.SERVICE_ACCEPT_PARAMCHANGE)
|
||||||
|
AcceptNetBindChange = Accepted(windows.SERVICE_ACCEPT_NETBINDCHANGE)
|
||||||
|
AcceptHardwareProfileChange = Accepted(windows.SERVICE_ACCEPT_HARDWAREPROFILECHANGE)
|
||||||
|
AcceptPowerEvent = Accepted(windows.SERVICE_ACCEPT_POWEREVENT)
|
||||||
|
AcceptSessionChange = Accepted(windows.SERVICE_ACCEPT_SESSIONCHANGE)
|
||||||
)
|
)
|
||||||
|
|
||||||
// Status combines State and Accepted commands to fully describe running service.
|
// Status combines State and Accepted commands to fully describe running service.
|
||||||
@@ -180,6 +185,21 @@ func (s *service) updateStatus(status *Status, ec *exitCode) error {
|
|||||||
if status.Accepts&AcceptPauseAndContinue != 0 {
|
if status.Accepts&AcceptPauseAndContinue != 0 {
|
||||||
t.ControlsAccepted |= windows.SERVICE_ACCEPT_PAUSE_CONTINUE
|
t.ControlsAccepted |= windows.SERVICE_ACCEPT_PAUSE_CONTINUE
|
||||||
}
|
}
|
||||||
|
if status.Accepts&AcceptParamChange != 0 {
|
||||||
|
t.ControlsAccepted |= windows.SERVICE_ACCEPT_PARAMCHANGE
|
||||||
|
}
|
||||||
|
if status.Accepts&AcceptNetBindChange != 0 {
|
||||||
|
t.ControlsAccepted |= windows.SERVICE_ACCEPT_NETBINDCHANGE
|
||||||
|
}
|
||||||
|
if status.Accepts&AcceptHardwareProfileChange != 0 {
|
||||||
|
t.ControlsAccepted |= windows.SERVICE_ACCEPT_HARDWAREPROFILECHANGE
|
||||||
|
}
|
||||||
|
if status.Accepts&AcceptPowerEvent != 0 {
|
||||||
|
t.ControlsAccepted |= windows.SERVICE_ACCEPT_POWEREVENT
|
||||||
|
}
|
||||||
|
if status.Accepts&AcceptSessionChange != 0 {
|
||||||
|
t.ControlsAccepted |= windows.SERVICE_ACCEPT_SESSIONCHANGE
|
||||||
|
}
|
||||||
if ec.errno == 0 {
|
if ec.errno == 0 {
|
||||||
t.Win32ExitCode = windows.NO_ERROR
|
t.Win32ExitCode = windows.NO_ERROR
|
||||||
t.ServiceSpecificExitCode = windows.NO_ERROR
|
t.ServiceSpecificExitCode = windows.NO_ERROR
|
||||||
|
|||||||
Reference in New Issue
Block a user