diff --git a/indra/llcommon/lluriparser.cpp b/indra/llcommon/lluriparser.cpp index 08b19c56e0ff638518c7aba8be2de96d50aa0edd..e24e53426ed3a02365e835b62d8f1fa1323c0c9c 100644 --- a/indra/llcommon/lluriparser.cpp +++ b/indra/llcommon/lluriparser.cpp @@ -29,7 +29,7 @@ #include "linden_common.h" #include "lluriparser.h" -LLUriParser::LLUriParser(const std::string& u) : mTmpScheme(false), mRes(0) +LLUriParser::LLUriParser(const std::string& u) : mTmpScheme(false), mNormalizedTmp(false), mRes(0) { mState.uri = &mUri; @@ -140,7 +140,7 @@ void LLUriParser::extractParts() return; } - if (mTmpScheme) + if (mTmpScheme || mNormalizedTmp) { mScheme.clear(); } @@ -169,6 +169,7 @@ void LLUriParser::extractParts() S32 LLUriParser::normalize() { + mNormalizedTmp = mTmpScheme; if (!mRes) { mRes = uriNormalizeSyntaxExA(&mUri, URI_NORMALIZE_SCHEME | URI_NORMALIZE_HOST); diff --git a/indra/llcommon/lluriparser.h b/indra/llcommon/lluriparser.h index e987bae9249f731d6d9cc0febfa6a78d11ee34ec..561431e8f905c01375ac7cbf1e7aab23e666eaba 100644 --- a/indra/llcommon/lluriparser.h +++ b/indra/llcommon/lluriparser.h @@ -81,6 +81,7 @@ class LL_COMMON_API LLUriParser S32 mRes; bool mTmpScheme; + bool mNormalizedTmp; }; #endif // LL_LLURIPARSER_H