Author: markt
Date: Mon Nov 28 17:21:40 2016
New Revision: 1771775
URL: http://svn.apache.org/viewvc?rev=1771775&view=rev
Log:
Fix DAEMON-282
Suppress spurious "The data area passed to a system call is too small" error
message in the log when procrun fails to stop the service.
Modified:
commons/proper/daemon/trunk/src/changes/changes.xml
commons/proper/daemon/trunk/src/native/windows/src/service.c
Modified: commons/proper/daemon/trunk/src/changes/changes.xml
URL:
http://svn.apache.org/viewvc/commons/proper/daemon/trunk/src/changes/changes.xml?rev=1771775&r1=1771774&r2=1771775&view=diff
==============================================================================
--- commons/proper/daemon/trunk/src/changes/changes.xml (original)
+++ commons/proper/daemon/trunk/src/changes/changes.xml Mon Nov 28 17:21:40 2016
@@ -67,6 +67,11 @@
<action issue="DAEMON-358" type="fix" dev="markt" due-to="Gustavo
Romero">
Update apsupport.m4 add support for 64-bit PowerPC architectures.
</action>
+ <action issue="DAEMON-282" type="fix" dev="markt">
+ Suppress spurious "The data area passed to a system call is too
+ small" error message in the log when procrun fails to stop the
+ service.
+ </action>
</release>
</body>
</document>
Modified: commons/proper/daemon/trunk/src/native/windows/src/service.c
URL:
http://svn.apache.org/viewvc/commons/proper/daemon/trunk/src/native/windows/src/service.c?rev=1771775&r1=1771774&r2=1771775&view=diff
==============================================================================
--- commons/proper/daemon/trunk/src/native/windows/src/service.c (original)
+++ commons/proper/daemon/trunk/src/native/windows/src/service.c Mon Nov 28
17:21:40 2016
@@ -147,8 +147,15 @@ apxServiceOpen(APXHANDLE hService, LPCWS
lpService->stServiceEntry.szObjectName[0] = L'\0';
}
if (!QueryServiceConfigW(lpService->hService, NULL, 0, &dwNeeded)) {
- if (GetLastError() != ERROR_INSUFFICIENT_BUFFER)
+ if (GetLastError() == ERROR_INSUFFICIENT_BUFFER) {
+ // This is expected. The call is expected to fail with the
required
+ // buffer size set in dwNeeded.
+ // Clear the last error to prevent it being logged if a genuine
+ // error occurs
+ SetLastError(ERROR_SUCCESS);
+ } else {
apxLogWrite(APXLOG_MARK_SYSERR);
+ }
}
/* TODO: Check GetLastError ERROR_INSUFFICIENT_BUFFER */
lpService->stServiceEntry.lpConfig =
(LPQUERY_SERVICE_CONFIGW)apxPoolAlloc(hService->hPool,