Skip to content

Commit f7928cf

Browse files
Tyler Treatbradfitz
authored andcommitted
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 <[email protected]> Run-TryBot: Brad Fitzpatrick <[email protected]> TryBot-Result: Gobot Gobot <[email protected]>
1 parent 50298aa commit f7928cf

1 file changed

Lines changed: 23 additions & 3 deletions

File tree

windows/svc/service.go

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,14 @@ const (
5656
type Accepted uint32
5757

5858
const (
59-
AcceptStop = Accepted(windows.SERVICE_ACCEPT_STOP)
60-
AcceptShutdown = Accepted(windows.SERVICE_ACCEPT_SHUTDOWN)
61-
AcceptPauseAndContinue = Accepted(windows.SERVICE_ACCEPT_PAUSE_CONTINUE)
59+
AcceptStop = Accepted(windows.SERVICE_ACCEPT_STOP)
60+
AcceptShutdown = Accepted(windows.SERVICE_ACCEPT_SHUTDOWN)
61+
AcceptPauseAndContinue = Accepted(windows.SERVICE_ACCEPT_PAUSE_CONTINUE)
62+
AcceptParamChange = Accepted(windows.SERVICE_ACCEPT_PARAMCHANGE)
63+
AcceptNetBindChange = Accepted(windows.SERVICE_ACCEPT_NETBINDCHANGE)
64+
AcceptHardwareProfileChange = Accepted(windows.SERVICE_ACCEPT_HARDWAREPROFILECHANGE)
65+
AcceptPowerEvent = Accepted(windows.SERVICE_ACCEPT_POWEREVENT)
66+
AcceptSessionChange = Accepted(windows.SERVICE_ACCEPT_SESSIONCHANGE)
6267
)
6368

6469
// Status combines State and Accepted commands to fully describe running service.
@@ -180,6 +185,21 @@ func (s *service) updateStatus(status *Status, ec *exitCode) error {
180185
if status.Accepts&AcceptPauseAndContinue != 0 {
181186
t.ControlsAccepted |= windows.SERVICE_ACCEPT_PAUSE_CONTINUE
182187
}
188+
if status.Accepts&AcceptParamChange != 0 {
189+
t.ControlsAccepted |= windows.SERVICE_ACCEPT_PARAMCHANGE
190+
}
191+
if status.Accepts&AcceptNetBindChange != 0 {
192+
t.ControlsAccepted |= windows.SERVICE_ACCEPT_NETBINDCHANGE
193+
}
194+
if status.Accepts&AcceptHardwareProfileChange != 0 {
195+
t.ControlsAccepted |= windows.SERVICE_ACCEPT_HARDWAREPROFILECHANGE
196+
}
197+
if status.Accepts&AcceptPowerEvent != 0 {
198+
t.ControlsAccepted |= windows.SERVICE_ACCEPT_POWEREVENT
199+
}
200+
if status.Accepts&AcceptSessionChange != 0 {
201+
t.ControlsAccepted |= windows.SERVICE_ACCEPT_SESSIONCHANGE
202+
}
183203
if ec.errno == 0 {
184204
t.Win32ExitCode = windows.NO_ERROR
185205
t.ServiceSpecificExitCode = windows.NO_ERROR

0 commit comments

Comments
 (0)