You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2021/11/04 16:00:53 UTC
[commons-daemon] 02/02: reportServiceStatusE() shows a short
description for dwCurrentState.
This is an automated email from the ASF dual-hosted git repository.
ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-daemon.git
commit c55467dcd9eaf7782393633c8c9cd633780e1a33
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Thu Nov 4 12:00:48 2021 -0400
reportServiceStatusE() shows a short description for dwCurrentState.
---
src/changes/changes.xml | 6 ++++++
src/native/windows/apps/prunsrv/prunsrv.c | 16 ++++++++++++++--
2 files changed, 20 insertions(+), 2 deletions(-)
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 627a5ca..751e073 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -55,6 +55,12 @@
<action type="add" dev="ggregory" due-to="John Patrick">
Enable Dependabot #20.
</action>
+ <action type="add" dev="ggregory" due-to="Gary Gregory">
+ reportServiceStatusE() shows scale of dwWaitHint as millisecond in logging.
+ </action>
+ <action type="add" dev="ggregory" due-to="Gary Gregory">
+ reportServiceStatusE() shows a short description for dwCurrentState.
+ </action>
<!-- -UPDATE -->
<action type="update" dev="ggregory" due-to="Dependabot">
Bump actions/cache from v2 to v2.1.6 #24, #30.
diff --git a/src/native/windows/apps/prunsrv/prunsrv.c b/src/native/windows/apps/prunsrv/prunsrv.c
index ee08eef..ac9ff8a 100644
--- a/src/native/windows/apps/prunsrv/prunsrv.c
+++ b/src/native/windows/apps/prunsrv/prunsrv.c
@@ -1031,6 +1031,17 @@ static BOOL docmdUpdateService(LPAPXCMDLINE lpCmdline)
return rv;
}
+/** Maps dwCurrentState to the constant name described on https://docs.microsoft.com/en-us/windows/win32/api/winsvc/ns-winsvc-service_status */
+static const char* gSzCurrentState[] = {
+ "",
+ "SERVICE_STOPPED",
+ "SERVICE_START_PENDING",
+ "SERVICE_STOP_PENDING",
+ "SERVICE_RUNNING",
+ "SERVICE_CONTINUE_PENDING",
+ "SERVICE_PAUSE_PENDING",
+ "SERVICE_PAUSED"
+};
/* Report the service status to the SCM, including service specific exit code.
*
@@ -1053,8 +1064,9 @@ static BOOL reportServiceStatusE(DWORD dwCurrentState,
static DWORD dwCheckPoint = 1;
BOOL fResult = TRUE;
- apxLogWrite(APXLOG_MARK_DEBUG "reportServiceStatusE: dwCurrentState = %d, dwWin32ExitCode = %d, dwWaitHint = %d milliseconds, dwServiceSpecificExitCode = %d.",
- dwCurrentState, dwWin32ExitCode, dwWaitHint, dwServiceSpecificExitCode);
+ int gSzCurrentStateIdx = dwCurrentState < 0 ? 0 : dwCurrentState > _countof(gSzCurrentState) ? 0 : dwCurrentState;
+ apxLogWrite(APXLOG_MARK_DEBUG "reportServiceStatusE: dwCurrentState = %d (%s), dwWin32ExitCode = %d, dwWaitHint = %d milliseconds, dwServiceSpecificExitCode = %d.",
+ dwCurrentState, gSzCurrentState[gSzCurrentStateIdx], dwWin32ExitCode, dwWaitHint, dwServiceSpecificExitCode);
if (_service_mode && _service_status_handle) {
if (dwCurrentState == SERVICE_RUNNING)