[cpp-sp] 02/03: SSPCPP-682 Wire Shibd into event messages
Rod Widdowson
rdw at steadingsoftware.com
Mon Jun 20 09:00:18 EDT 2016
This is an automated email from the git hooks/post-receive script.
rdw pushed a commit to branch master
in repository cpp-sp.
View the commit online:
http://git.shibboleth.net/view/?p=cpp-sp.git;a=commit;h=9f968a65efa9b65e759d97696a786525bdad2cc4
commit 9f968a65efa9b65e759d97696a786525bdad2cc4
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Mon Jun 20 11:17:26 2016 +0100
SSPCPP-682 Wire Shibd into event messages
https://issues.shibboleth.net/jira/browse/SSPCPP-682
Use specific messages for shibd. No formatting is needed, but as
a matter of course we leave the original message in place (to help
debug in the case of broken installs) and also put GetLastError()
into the binary data area.
We cannot format binary data in the event viewer, so one would
need to look at tht raw xml and then byte swap. But that is
advanced debugging anyway.
---
Projects/vc10/Shibboleth.sln | 6 ++++++
Projects/vc10/shibd/shibd.vcxproj | 25 ++++++++++++++++------
shibd/shibd_win32.cpp | 16 ++++++++------
util/message.mc | 45 +++++++++++++++++++++++++++++++++++++--
4 files changed, 77 insertions(+), 15 deletions(-)
diff --git a/Projects/vc10/Shibboleth.sln b/Projects/vc10/Shibboleth.sln
index a86422e..58f621a 100644
--- a/Projects/vc10/Shibboleth.sln
+++ b/Projects/vc10/Shibboleth.sln
@@ -100,6 +100,9 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Doc", "Doc", "{6ED5E3E7-1B0
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "isapi_shib", "isapi_shib\isapi_shib.vcxproj", "{87C25D4E-8D19-4513-B0BA-BC668BC2DEE3}"
+ ProjectSection(ProjectDependencies) = postProject
+ {303291A1-C542-49E4-80B3-9304B7B6F8BC} = {303291A1-C542-49E4-80B3-9304B7B6F8BC}
+ EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_shib_13", "apache\mod_shib13.vcxproj", "{D243B43E-728E-4F32-BDFF-B3A897037C6D}"
EndProject
@@ -114,6 +117,9 @@ EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shibsp", "shibsp\shibsp.vcxproj", "{81F0F7A6-DC36-46EF-957F-F9E81D4403F6}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shibd", "shibd\shibd.vcxproj", "{F13141B5-6C87-40BB-8D4E-5CC56EBB4C59}"
+ ProjectSection(ProjectDependencies) = postProject
+ {303291A1-C542-49E4-80B3-9304B7B6F8BC} = {303291A1-C542-49E4-80B3-9304B7B6F8BC}
+ EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shibsp-lite", "shibsp\shibsp-lite.vcxproj", "{81F0F7A6-DC36-46EF-957F-F9E81D4403F7}"
EndProject
diff --git a/Projects/vc10/shibd/shibd.vcxproj b/Projects/vc10/shibd/shibd.vcxproj
index 9b1b0fe..0c87ef4 100644
--- a/Projects/vc10/shibd/shibd.vcxproj
+++ b/Projects/vc10/shibd/shibd.vcxproj
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
@@ -93,7 +93,7 @@
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
- <AdditionalIncludeDirectories>..\..\..\shibd\;..\..\..\;..\..\..\..\cpp-opensaml;..\..\..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>..\..\..\shibd\;..\..\..\;..\..\..\..\cpp-opensaml;..\..\..\..\cpp-xmltooling;$(OutDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -112,6 +112,9 @@
</DataExecutionPrevention>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
+ <PreBuildEvent>
+ <Command>mc message.mc</Command>
+ </PreBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Midl>
@@ -122,7 +125,7 @@
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
- <AdditionalIncludeDirectories>..\..\..\shibd\;..\..\..\;..\..\..\..\cpp-opensaml;..\..\..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>..\..\..\shibd\;..\..\..\;..\..\..\..\cpp-opensaml;..\..\..\..\cpp-xmltooling;$(OutDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<FunctionLevelLinking>true</FunctionLevelLinking>
@@ -141,6 +144,9 @@
</DataExecutionPrevention>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
+ <PreBuildEvent>
+ <Command>mc message.mc</Command>
+ </PreBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Midl>
@@ -149,7 +155,7 @@
</Midl>
<ClCompile>
<Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>..\..\..\shibd\;..\..\..\;..\..\..\..\cpp-opensaml;..\..\..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>..\..\..\shibd\;..\..\..\;..\..\..\..\cpp-opensaml;..\..\..\..\cpp-xmltooling;$(OutDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_CONSOLE;WIN32;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
@@ -169,6 +175,10 @@
<DataExecutionPrevention>
</DataExecutionPrevention>
</Link>
+ <PreBuildEvent>
+ <Command>
+ </Command>
+ </PreBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Midl>
@@ -178,7 +188,7 @@
</Midl>
<ClCompile>
<Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>..\..\..\shibd\;..\..\..\;..\..\..\..\cpp-opensaml;..\..\..\..\cpp-xmltooling;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>..\..\..\shibd\;..\..\..\;..\..\..\..\cpp-opensaml;..\..\..\..\cpp-xmltooling;$(OutDir;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_CONSOLE;WIN32;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<RuntimeTypeInfo>true</RuntimeTypeInfo>
@@ -198,6 +208,9 @@
<DataExecutionPrevention>
</DataExecutionPrevention>
</Link>
+ <PreBuildEvent>
+ <Command>mc message.mc</Command>
+ </PreBuildEvent>
</ItemDefinitionGroup>
<ItemGroup>
<None Include="..\..\..\shibd\Makefile.am" />
@@ -221,4 +234,4 @@
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
-</Project>
+</Project>
\ No newline at end of file
diff --git a/shibd/shibd_win32.cpp b/shibd/shibd_win32.cpp
index ae8ff46..bb12c59 100644
--- a/shibd/shibd_win32.cpp
+++ b/shibd/shibd_win32.cpp
@@ -27,6 +27,7 @@
#define _CRT_NONSTDC_NO_DEPRECATE 1
#define _CRT_SECURE_NO_DEPRECATE 1
+#include <message.h>
#include <shibsp/base.h>
#include <string>
#include <windows.h>
@@ -158,7 +159,7 @@ int main(int argc, char *argv[])
SetConsoleCtrlHandler(&BreakHandler,TRUE);
if ((i=real_main(1))!=0)
{
- LogEvent(nullptr, EVENTLOG_ERROR_TYPE, 2100, nullptr, "shibd startup failed, check shibd.log for further details");
+ LogEvent(nullptr, EVENTLOG_ERROR_TYPE, SHIBD_STARTUP_FAILED, nullptr, "shibd startup failed, check shibd.log for further details");
return i;
}
return real_main(0);
@@ -199,7 +200,7 @@ int main(int argc, char *argv[])
};
if (!StartServiceCtrlDispatcher(dispatchTable))
- LogEvent(nullptr, EVENTLOG_ERROR_TYPE, 2100, nullptr, "StartServiceCtrlDispatcher failed.");
+ LogEvent(nullptr, EVENTLOG_ERROR_TYPE, SHIBD_SERVICE_START_FAILED, nullptr, "StartServiceCtrlDispatcher failed.");
return 0;
}
@@ -214,11 +215,11 @@ VOID ServiceStart (DWORD dwArgc, LPSTR *lpszArgv)
if (real_main(1)!=0)
{
- LogEvent(nullptr, EVENTLOG_ERROR_TYPE, 2100, nullptr, "shibd startup failed, check shibd.log for further details");
+ LogEvent(nullptr, EVENTLOG_ERROR_TYPE, SHIBD_STARTUP_FAILED, nullptr, "shibd startup failed, check shibd.log for further details");
return;
}
- LogEvent(nullptr, EVENTLOG_INFORMATION_TYPE, 7700, nullptr, "shibd started successfully.");
+ LogEvent(nullptr, EVENTLOG_INFORMATION_TYPE, SHIBD_SERVICE_STARTED, nullptr, "shibd started successfully.");
if (!ReportStatusToSCMgr(SERVICE_RUNNING, NO_ERROR, 0))
return;
@@ -235,7 +236,7 @@ VOID ServiceStart (DWORD dwArgc, LPSTR *lpszArgv)
VOID ServiceStop()
{
if (!bConsole)
- LogEvent(nullptr, EVENTLOG_INFORMATION_TYPE, 7701, nullptr, "shibd stopping...");
+ LogEvent(nullptr, EVENTLOG_INFORMATION_TYPE, SHIBD_SERVICE_STOPPING, nullptr, "shibd stopping...");
shibd_shutdown=true;
}
@@ -362,7 +363,7 @@ BOOL ReportStatusToSCMgr(DWORD dwCurrentState,
// Report the status of the service to the service control manager.
//
if (!(fResult = SetServiceStatus(sshStatusHandle, &ssStatus)))
- LogEvent(nullptr, EVENTLOG_ERROR_TYPE, 2100, nullptr, "SetServiceStatus failed.");
+ LogEvent(nullptr, EVENTLOG_ERROR_TYPE, SHIBD_SET_SERVICE_STATUS_FAILED, nullptr, "SetServiceStatus failed.");
}
return fResult;
}
@@ -552,8 +553,9 @@ BOOL LogEvent(
LPCSTR message)
{
LPCSTR messages[] = {message, nullptr};
+ DWORD gle = {GetLastError()};
HANDLE hElog = RegisterEventSource(lpUNCServerName, "Shibboleth Daemon");
- BOOL res = ReportEvent(hElog, wType, 0, dwEventID, lpUserSid, 1, 0, messages, nullptr);
+ BOOL res = ReportEvent(hElog, wType, CATEGORY_SHIBD, dwEventID, lpUserSid, 1, sizeof(DWORD), messages, &gle);
return (DeregisterEventSource(hElog) && res);
}
diff --git a/util/message.mc b/util/message.mc
index fa28c1e..e7c2612 100644
--- a/util/message.mc
+++ b/util/message.mc
@@ -31,13 +31,54 @@ FacilityNames=(Shibboleth=0x231:FACILITY_SYSTEM
MessageId=100
Severity=Error
Facility=Shibboleth
-SymbolicName=SHIBD_MESSAGE
+SymbolicName=SHIBD_GENERIC_MESSAGE
Language=English
-Shibboleth Daemon: %1!s!: %2!s! %3!s! (%1!*x! : %2!x! '%3!ld!') (%1!4d! : %2!I32d! '%3!3D!')
+Shibboleth Daemon: %1!s!
.
MessageId=
Severity=Error
+Facility=Shibboleth
+SymbolicName=SHIBD_STARTUP_FAILED
+Language=English
+Shibboleth Daemon startup failed.
+.
+
+MessageId=
+Severity=Error
+Facility=Shibboleth
+SymbolicName=SHIBD_SERVICE_START_FAILED
+Language=English
+Shibboleth Daemon startup: StartServiceCtrlDispatcher failed.
+.
+
+MessageId=
+Severity=Error
+Facility=Shibboleth
+SymbolicName=SHIBD_SET_SERVICE_STATUS_FAILED
+Language=English
+Shibboleth Daemon startup: SetServiceStatus failed.
+.
+
+MessageId=
+Severity=Informational
+Facility=Shibboleth
+SymbolicName=SHIBD_SERVICE_STARTED
+Language=English
+Shibboleth Daemon started successfully.
+.
+
+MessageId=
+Severity=Informational
+Facility=Shibboleth
+SymbolicName=SHIBD_SERVICE_STOPPING
+Language=English
+Shibboleth Daemon stopping...
+.
+
+
+MessageId=200
+Severity=Error
Facility=ShibbolethISAPI
SymbolicName=SHIBISAPI_MESSAGE
Language=English
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list