From 1015adf32256b6ffeb44f5e75df537f5562fa7ae Mon Sep 17 00:00:00 2001 From: PavelK ProductEngine Date: Thu, 25 Jul 2013 19:37:15 +0300 Subject: MAINT-2715 FIX Capabilities request handling not working properly if request gets lost --- indra/newview/llviewerregion.cpp | 1 + indra/newview/llworld.cpp | 9 +++++++++ 2 files changed, 10 insertions(+) (limited to 'indra/newview') 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 ®ion_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 ®ion_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 ®ion_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); -- cgit v1.2.3