From 6b411adbd0d430dee952e5baede2545cb9e87f25 Mon Sep 17 00:00:00 2001 From: pan-wang Date: Wed, 21 Jun 2017 16:48:38 -0700 Subject: [PATCH] revert the preserve host header change as it failed on Antares (#114) --- src/AspNetCore/Inc/protocolconfig.h | 7 +++++++ src/AspNetCore/Src/forwardinghandler.cxx | 24 +++++++++++++----------- src/AspNetCore/Src/protocolconfig.cxx | 1 + 3 files changed, 21 insertions(+), 11 deletions(-) diff --git a/src/AspNetCore/Inc/protocolconfig.h b/src/AspNetCore/Inc/protocolconfig.h index 7cc0dc03d7..f7d915d6a9 100644 --- a/src/AspNetCore/Inc/protocolconfig.h +++ b/src/AspNetCore/Inc/protocolconfig.h @@ -33,6 +33,12 @@ class PROTOCOL_CONFIG return m_msTimeout; } + BOOL + QueryPreserveHostHeader() const + { + return m_fPreserveHostHeader; + } + BOOL QueryReverseRewriteHeaders() const { @@ -84,6 +90,7 @@ class PROTOCOL_CONFIG private: BOOL m_fKeepAlive; + BOOL m_fPreserveHostHeader; BOOL m_fReverseRewriteHeaders; BOOL m_fIncludePortInXForwardedFor; diff --git a/src/AspNetCore/Src/forwardinghandler.cxx b/src/AspNetCore/Src/forwardinghandler.cxx index 5f4e316181..39820d3837 100644 --- a/src/AspNetCore/Src/forwardinghandler.cxx +++ b/src/AspNetCore/Src/forwardinghandler.cxx @@ -635,19 +635,21 @@ FORWARDING_HANDLER::GetHeaders( // this is wrong but Kestrel has dependency on it. // should change it in the future // - if (FAILED(hr = PATH::SplitUrl(pRequest->GetRawHttpRequest()->CookedUrl.pFullUrl, - &fSecure, - &struDestination, - &struUrl)) || - FAILED(hr = strTemp.CopyW(struDestination.QueryStr())) || - FAILED(hr = pRequest->SetHeader(HttpHeaderHost, - strTemp.QueryStr(), - static_cast(strTemp.QueryCCH()), - TRUE))) // fReplace + if (!pProtocol->QueryPreserveHostHeader()) { - return hr; + if (FAILED(hr = PATH::SplitUrl(pRequest->GetRawHttpRequest()->CookedUrl.pFullUrl, + &fSecure, + &struDestination, + &struUrl)) || + FAILED(hr = strTemp.CopyW(struDestination.QueryStr())) || + FAILED(hr = pRequest->SetHeader(HttpHeaderHost, + strTemp.QueryStr(), + static_cast(strTemp.QueryCCH()), + TRUE))) // fReplace + { + return hr; + } } - // // Strip all headers starting with MS-ASPNETCORE. // These headers are generated by the asp.net core module and diff --git a/src/AspNetCore/Src/protocolconfig.cxx b/src/AspNetCore/Src/protocolconfig.cxx index 3f17e64a9f..85fd86aa61 100644 --- a/src/AspNetCore/Src/protocolconfig.cxx +++ b/src/AspNetCore/Src/protocolconfig.cxx @@ -11,6 +11,7 @@ PROTOCOL_CONFIG::Initialize() m_fKeepAlive = TRUE; m_msTimeout = 120000; + m_fPreserveHostHeader = TRUE; m_fReverseRewriteHeaders = FALSE; if (FAILED(hr = m_strXForwardedForName.CopyW(L"X-Forwarded-For")))