summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrey Kleshchev <andreykproductengine@lindenlab.com>2022-09-12 16:19:23 +0300
committerAndrey Kleshchev <andreykproductengine@lindenlab.com>2022-09-16 00:15:47 +0300
commit62b8498fbb8c3f8b9b886b821051654a1aae345b (patch)
treee5257c350e42345f1d569c2bb63f7c106cf3c94e
parentfe60229dfc4d58ee3b887fd85f9a898834051961 (diff)
SL-18131 Increase region cap access count before returning errors
It might be safe to merge mSeedCapAttempts with mHttpResponderID, but for now leaving them separated, if only for making this mechanic clearer.
-rwxr-xr-xindra/newview/llviewerregion.cpp34
1 files changed, 17 insertions, 17 deletions
diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp
index 7bf5b29e7e..ad7321ca4b 100755
--- a/indra/newview/llviewerregion.cpp
+++ b/indra/newview/llviewerregion.cpp
@@ -324,6 +324,23 @@ void LLViewerRegionImpl::requestBaseCapabilitiesCoro(U64 regionHandle)
return;
}
+ if (!LLWorld::instanceExists())
+ {
+ LL_WARNS("AppInit", "Capabilities") << "Received capabilities, but world no longer exists!" << LL_ENDL;
+ return;
+ }
+
+ regionp = LLWorld::getInstance()->getRegionFromHandle(regionHandle);
+ if (!regionp) //region was removed
+ {
+ LL_WARNS("AppInit", "Capabilities") << "Received capabilities for region that no longer exists!" << LL_ENDL;
+ return; // this error condition is not recoverable.
+ }
+
+ impl = regionp->getRegionImplNC();
+
+ ++(impl->mSeedCapAttempts);
+
if (!result.isMap() || result.has("error"))
{
LL_WARNS("AppInit", "Capabilities") << "Malformed response" << LL_ENDL;
@@ -343,23 +360,6 @@ void LLViewerRegionImpl::requestBaseCapabilitiesCoro(U64 regionHandle)
// remove the http_result from the llsd
result.erase("http_result");
- if (!LLWorld::instanceExists())
- {
- LL_WARNS("AppInit", "Capabilities") << "Received capabilities, but world no longer exists!" << LL_ENDL;
- return;
- }
-
- regionp = LLWorld::getInstance()->getRegionFromHandle(regionHandle);
- if (!regionp) //region was removed
- {
- LL_WARNS("AppInit", "Capabilities") << "Received capabilities for region that no longer exists!" << LL_ENDL;
- return; // this error condition is not recoverable.
- }
-
- impl = regionp->getRegionImplNC();
-
- ++(impl->mSeedCapAttempts);
-
if (id != impl->mHttpResponderID) // region is no longer referring to this request
{
LL_WARNS("AppInit", "Capabilities") << "Received results for a stale capabilities request!" << LL_ENDL;