fix issue #26 AspNetCoreModule needs to abort failed responses (#34)

This commit is contained in:
pan-wang 2016-10-31 13:03:13 -07:00 committed by GitHub
parent ae727d64a9
commit 4569d6d6d5
3 changed files with 14 additions and 1 deletions

View File

@ -27,6 +27,7 @@ enum FORWARDING_REQUEST_STATUS
FORWARDER_SENDING_REQUEST,
FORWARDER_RECEIVING_RESPONSE,
FORWARDER_RECEIVED_WEBSOCKET_RESPONSE,
FORWARDER_RESET_CONNECTION,
FORWARDER_DONE
};

View File

@ -51,7 +51,7 @@ VOID
HKEY hKey;
if (RegOpenKeyEx(HKEY_LOCAL_MACHINE,
L"SOFTWARE\\Microsoft\\IIS Extensions\\AspNetCore Module\\Parameters",
L"SOFTWARE\\Microsoft\\IIS Extensions\\IIS AspNetCore Module\\Parameters",
0,
KEY_READ,
&hKey) == NO_ERROR)

View File

@ -1591,6 +1591,12 @@ Return Value:
retVal = RQ_NOTIFICATION_PENDING;
goto Finished;
}
else if (m_RequestStatus == FORWARDER_RESET_CONNECTION)
{
hr = HRESULT_FROM_WIN32(ERROR_WINHTTP_INVALID_SERVER_RESPONSE);
goto Failure;
}
//
// Begins normal completion handling. There is already a shared acquired
@ -2185,6 +2191,12 @@ None
Failure:
if (hr == HRESULT_FROM_WIN32(ERROR_WINHTTP_INVALID_SERVER_RESPONSE))
{
m_RequestStatus = FORWARDER_RESET_CONNECTION;
goto Finished;
}
m_RequestStatus = FORWARDER_DONE;
pResponse->DisableKernelCache();