Make handlerSettings optional (#989)

This commit is contained in:
Pavel Krymets 2018-06-29 08:44:03 -07:00 committed by GitHub
parent a266d3fa27
commit f5f0988baf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 29 additions and 13 deletions

View File

@ -56,7 +56,10 @@ ASPNETCORE_SHIM_CONFIG::Populate(
CS_ASPNETCORE_PROCESS_ARGUMENTS,
&m_struArguments));
RETURN_IF_FAILED(ConfigUtility::FindHandlerVersion(pAspNetCoreElement, &m_struHandlerVersion));
if (m_hostingModel == HOSTING_OUT_PROCESS)
{
RETURN_IF_FAILED(ConfigUtility::FindHandlerVersion(pAspNetCoreElement, &m_struHandlerVersion));
}
return S_OK;
}

View File

@ -28,7 +28,12 @@ public:
STRU strHandlerName;
STRU strHandlerValue;
RETURN_IF_FAILED(GetElementChildByName(pElement, CS_ASPNETCORE_HANDLER_SETTINGS,&pHandlerSettings));
// backwards complatibility with systems not having schema for handlerSettings
if (FAILED_LOG(GetElementChildByName(pElement, CS_ASPNETCORE_HANDLER_SETTINGS, &pHandlerSettings)))
{
return S_OK;
}
RETURN_IF_FAILED(pHandlerSettings->get_Collection(&pHandlerSettingsCollection));
RETURN_IF_FAILED(hr = FindFirstElement(pHandlerSettingsCollection, &index, &pHandlerVar));

View File

@ -67,19 +67,18 @@ DebugInitialize()
try
{
const auto debugOutputFile = Environment::ExpandEnvironmentVariables(L"%ASPNETCORE_MODULE_DEBUG_FILE%");
auto debugOutputFile = Environment::ExpandEnvironmentVariables(L"%ASPNETCORE_MODULE_DEBUG_FILE%");
if (!debugOutputFile.empty())
{
g_logFile = CreateFileW(debugOutputFile.c_str(),
FILE_GENERIC_WRITE,
FILE_SHARE_READ | FILE_SHARE_WRITE,
(GENERIC_READ | GENERIC_WRITE),
(FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE),
nullptr,
OPEN_ALWAYS,
FILE_ATTRIBUTE_NORMAL,
nullptr
);
if (g_logFile != INVALID_HANDLE_VALUE)
{
InitializeSRWLock(&g_logFileLock);
@ -145,6 +144,7 @@ DebugPrint(
SetFilePointer(g_logFile, 0, nullptr, FILE_END);
WriteFile(g_logFile, strOutput.QueryStr(), strOutput.QueryCB(), &nBytesWritten, nullptr);
FlushFileBuffers(g_logFile);
}
}
}

View File

@ -572,13 +572,7 @@ UTILITY::LogEvent(
);
}
STACK_STRA(converted, 256);
if (converted.CopyW(pstrMsg))
{
DebugPrintf(
dwEventInfoType == EVENTLOG_ERROR_TYPE ? ASPNETCORE_DEBUG_FLAG_ERROR : ASPNETCORE_DEBUG_FLAG_INFO,
"Event Log: %s", converted.QueryStr());
}
WDebugPrintf(dwEventInfoType == EVENTLOG_ERROR_TYPE ? ASPNETCORE_DEBUG_FLAG_ERROR : ASPNETCORE_DEBUG_FLAG_INFO, L"Event Log: %s", pstrMsg);
}
VOID

View File

@ -89,4 +89,18 @@ namespace ConfigUtilityTests
EXPECT_EQ(hr, S_OK);
EXPECT_STREQ(handlerVersion.QueryStr(), L"value2");
}
TEST(ConfigUtilityTestSingle, IgnoresFailedGetElement)
{
STRU handlerVersion;
auto element = std::make_unique<NiceMock<MockElement>>();
ON_CALL(*element, GetElementByName(_, _))
.WillByDefault(DoAll(testing::SetArgPointee<1>(nullptr), testing::Return(HRESULT_FROM_WIN32( ERROR_INVALID_INDEX ))));
HRESULT hr = ConfigUtility::FindHandlerVersion(element.get(), &handlerVersion);
EXPECT_EQ(hr, S_OK);
EXPECT_STREQ(handlerVersion.QueryStr(), L"");
}
}