Automated merge with ssh://bitbucket.org/lindenlab/sunshine-internal
commit
203da72c5f
|
|
@ -43,9 +43,7 @@
|
|||
<key>tags</key>
|
||||
<array>
|
||||
<string>Avatar</string>
|
||||
<!-- sample entry for debugging specific items
|
||||
<string>Voice</string>
|
||||
-->
|
||||
<string>CrossingCaps</string>
|
||||
</array>
|
||||
</map>
|
||||
</array>
|
||||
|
|
|
|||
|
|
@ -1279,6 +1279,8 @@ bool idle_startup()
|
|||
LLViewerRegion *regionp = LLWorld::getInstance()->getRegionFromHandle(gFirstSimHandle);
|
||||
LL_INFOS("AppInit") << "Adding initial simulator " << regionp->getOriginGlobal() << LL_ENDL;
|
||||
|
||||
LL_DEBUGS("CrossingCaps") << "Calling setSeedCapability from init_idle(). Seed cap == "
|
||||
<< gFirstSimSeedCap << LL_ENDL;
|
||||
regionp->setSeedCapability(gFirstSimSeedCap);
|
||||
LL_DEBUGS("AppInit") << "Waiting for seed grant ...." << LL_ENDL;
|
||||
display_startup();
|
||||
|
|
|
|||
|
|
@ -3956,6 +3956,8 @@ void process_teleport_finish(LLMessageSystem* msg, void**)
|
|||
gAgent.setTeleportState( LLAgent::TELEPORT_MOVING );
|
||||
gAgent.setTeleportMessage(LLAgent::sTeleportProgressMessages["contacting"]);
|
||||
|
||||
LL_DEBUGS("CrossingCaps") << "Calling setSeedCapability from process_teleport_finish(). Seed cap == "
|
||||
<< seedCap << LL_ENDL;
|
||||
regionp->setSeedCapability(seedCap);
|
||||
|
||||
// Don't send camera updates to the new region until we're
|
||||
|
|
@ -4210,6 +4212,9 @@ void process_crossed_region(LLMessageSystem* msg, void**)
|
|||
send_complete_agent_movement(sim_host);
|
||||
|
||||
LLViewerRegion* regionp = LLWorld::getInstance()->addRegion(region_handle, sim_host);
|
||||
|
||||
LL_DEBUGS("CrossingCaps") << "Calling setSeedCapability from process_crossed_region(). Seed cap == "
|
||||
<< seedCap << LL_ENDL;
|
||||
regionp->setSeedCapability(seedCap);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -87,6 +87,8 @@ const S32 MAX_CAP_REQUEST_ATTEMPTS = 30;
|
|||
|
||||
typedef std::map<std::string, std::string> CapabilityMap;
|
||||
|
||||
static void logCapabilities(const CapabilityMap &capmap);
|
||||
|
||||
class LLViewerRegionImpl {
|
||||
public:
|
||||
LLViewerRegionImpl(LLViewerRegion * region, LLHost const & host)
|
||||
|
|
@ -321,17 +323,36 @@ private:
|
|||
if ( regionp->getRegionImpl()->mCapabilities.size() != regionp->getRegionImpl()->mSecondCapabilitiesTracker.size() )
|
||||
{
|
||||
LL_WARNS2("AppInit", "Capabilities")
|
||||
<< "Sim sent duplicate seed caps that differs in size - most likely content." << LL_ENDL;
|
||||
//todo#add cap debug versus original check?
|
||||
/*CapabilityMap::const_iterator iter = regionp->getRegionImpl()->mCapabilities.begin();
|
||||
while (iter!=regionp->getRegionImpl()->mCapabilities.end() )
|
||||
{
|
||||
llinfos<<"BaseCapabilitiesCompleteTracker Original "<<iter->first<<" "<< iter->second<<llendl;
|
||||
++iter;
|
||||
}
|
||||
*/
|
||||
<< "Sim sent duplicate base caps that differ in size from what we initially received - most likely content. "
|
||||
<< "mCapabilities == " << regionp->getRegionImpl()->mCapabilities.size()
|
||||
<< " mSecondCapabilitiesTracker == " << regionp->getRegionImpl()->mSecondCapabilitiesTracker.size()
|
||||
<< LL_ENDL;
|
||||
|
||||
//LL_WARNS2("AppInit", "Capabilities")
|
||||
// << "Initial Base capabilities: " << LL_ENDL;
|
||||
|
||||
//logCapabilities(regionp->getRegionImpl()->mCapabilities);
|
||||
|
||||
//LL_WARNS2("AppInit", "Capabilities")
|
||||
// << "Latest base capabilities: " << LL_ENDL;
|
||||
|
||||
//logCapabilities(regionp->getRegionImpl()->mSecondCapabilitiesTracker);
|
||||
|
||||
// *TODO
|
||||
//add cap debug versus original check?
|
||||
//CapabilityMap::const_iterator iter = regionp->getRegionImpl()->mCapabilities.begin();
|
||||
//while (iter!=regionp->getRegionImpl()->mCapabilities.end() )
|
||||
//{
|
||||
// llinfos<<"BaseCapabilitiesCompleteTracker Original "<<iter->first<<" "<< iter->second<<llendl;
|
||||
// ++iter;
|
||||
//}
|
||||
|
||||
regionp->getRegionImplNC()->mSecondCapabilitiesTracker.clear();
|
||||
}
|
||||
else
|
||||
{
|
||||
LL_DEBUGS("CrossingCaps") << "Sim sent multiple base cap grants with matching sizes." << LL_ENDL;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -1671,7 +1692,9 @@ void LLViewerRegion::setSeedCapability(const std::string& url)
|
|||
{
|
||||
if (getCapability("Seed") == url)
|
||||
{
|
||||
//llwarns << "Ignoring duplicate seed capability" << llendl;
|
||||
setCapabilityDebug("Seed", url);
|
||||
LL_DEBUGS("CrossingCaps") << "Received duplicate seed capability, posting to seed " <<
|
||||
url << llendl;
|
||||
//Instead of just returning we build up a second set of seed caps and compare them
|
||||
//to the "original" seed cap received and determine why there is problem!
|
||||
LLSD capabilityNames = LLSD::emptyArray();
|
||||
|
|
@ -1821,7 +1844,16 @@ void LLViewerRegion::setCapability(const std::string& name, const std::string& u
|
|||
|
||||
void LLViewerRegion::setCapabilityDebug(const std::string& name, const std::string& url)
|
||||
{
|
||||
mImpl->mSecondCapabilitiesTracker[name] = url;
|
||||
// Continue to not add certain caps, as we do in setCapability. This is so they match up when we check them later.
|
||||
if ( ! ( name == "EventQueueGet" || name == "UntrustedSimulatorMessage" || name == "SimulatorFeatures" ) )
|
||||
{
|
||||
mImpl->mSecondCapabilitiesTracker[name] = url;
|
||||
if(name == "GetTexture")
|
||||
{
|
||||
mHttpUrl = url ;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
bool LLViewerRegion::isSpecialCapabilityName(const std::string &name)
|
||||
|
|
@ -1872,16 +1904,7 @@ boost::signals2::connection LLViewerRegion::setCapabilitiesReceivedCallback(cons
|
|||
|
||||
void LLViewerRegion::logActiveCapabilities() const
|
||||
{
|
||||
int count = 0;
|
||||
CapabilityMap::const_iterator iter;
|
||||
for (iter = mImpl->mCapabilities.begin(); iter != mImpl->mCapabilities.end(); ++iter, ++count)
|
||||
{
|
||||
if (!iter->second.empty())
|
||||
{
|
||||
llinfos << iter->first << " URL is " << iter->second << llendl;
|
||||
}
|
||||
}
|
||||
llinfos << "Dumped " << count << " entries." << llendl;
|
||||
logCapabilities(mImpl->mCapabilities);
|
||||
}
|
||||
|
||||
LLSpatialPartition* LLViewerRegion::getSpatialPartition(U32 type)
|
||||
|
|
@ -1965,3 +1988,19 @@ bool LLViewerRegion::dynamicPathfindingEnabled() const
|
|||
mSimulatorFeatures["DynamicPathfindingEnabled"].asBoolean());
|
||||
}
|
||||
|
||||
/* Static Functions */
|
||||
|
||||
void logCapabilities(const CapabilityMap &capmap)
|
||||
{
|
||||
S32 count = 0;
|
||||
CapabilityMap::const_iterator iter;
|
||||
for (iter = capmap.begin(); iter != capmap.end(); ++iter, ++count)
|
||||
{
|
||||
if (!iter->second.empty())
|
||||
{
|
||||
llinfos << "logCapabilities: " << iter->first << " URL is " << iter->second << llendl;
|
||||
}
|
||||
}
|
||||
llinfos << "logCapabilities: Dumped " << count << " entries." << llendl;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1065,6 +1065,8 @@ public:
|
|||
<< sim << llendl;
|
||||
return;
|
||||
}
|
||||
LL_DEBUGS("CrossingCaps") << "Calling setSeedCapability from LLEstablishAgentCommunication::post. Seed cap == "
|
||||
<< input["body"]["seed-capability"] << LL_ENDL;
|
||||
regionp->setSeedCapability(input["body"]["seed-capability"]);
|
||||
}
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in New Issue