summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
authorPavelK ProductEngine <pkrivich@productengine.com>2013-07-25 19:37:15 +0300
committerPavelK ProductEngine <pkrivich@productengine.com>2013-07-25 19:37:15 +0300
commit1015adf32256b6ffeb44f5e75df537f5562fa7ae (patch)
tree079f12fee823188cf432d6733f9e687efbebf4a1 /indra/newview
parent2d3d04e72fb71eaa09684c69ccb5a4eb8e0db970 (diff)
MAINT-2715 FIX Capabilities request handling not working properly if request gets lost
Diffstat (limited to 'indra/newview')
-rwxr-xr-xindra/newview/llviewerregion.cpp1
-rwxr-xr-xindra/newview/llworld.cpp9
2 files changed, 10 insertions, 0 deletions
diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp
index 778c0ee61a..04ec98d514 100755
--- a/indra/newview/llviewerregion.cpp
+++ b/indra/newview/llviewerregion.cpp
@@ -232,6 +232,7 @@ public:
if( mID != regionp->getHttpResponderID() ) // region is no longer referring to this responder
{
LL_WARNS2("AppInit", "Capabilities") << "Received results for a stale http responder!" << LL_ENDL;
+ regionp->failedSeedCapability();
return ;
}
diff --git a/indra/newview/llworld.cpp b/indra/newview/llworld.cpp
index 7996f8a640..103668d051 100755
--- a/indra/newview/llworld.cpp
+++ b/indra/newview/llworld.cpp
@@ -140,6 +140,7 @@ LLViewerRegion* LLWorld::addRegion(const U64 &region_handle, const LLHost &host)
{
llinfos << "Add region with handle: " << region_handle << " on host " << host << llendl;
LLViewerRegion *regionp = getRegionFromHandle(region_handle);
+ std::string seedUrl;
if (regionp)
{
llinfos << "Region exists, removing it " << llendl;
@@ -161,6 +162,9 @@ LLViewerRegion* LLWorld::addRegion(const U64 &region_handle, const LLHost &host)
llwarns << "LLWorld::addRegion exists, but isn't alive" << llendl;
}
+ // Save capabilities seed URL
+ seedUrl = regionp->getCapability("Seed");
+
// Kill the old host, and then we can continue on and add the new host. We have to kill even if the host
// matches, because all the agent state for the new camera is completely different.
removeRegion(old_host);
@@ -188,6 +192,11 @@ LLViewerRegion* LLWorld::addRegion(const U64 &region_handle, const LLHost &host)
llerrs << "Unable to create new region!" << llendl;
}
+ if ( !seedUrl.empty() )
+ {
+ regionp->setCapability("Seed", seedUrl);
+ }
+
mRegionList.push_back(regionp);
mActiveRegionList.push_back(regionp);
mCulledRegionList.push_back(regionp);