diff options
| -rw-r--r-- | indra/newview/app_settings/logcontrol.xml | 4 | ||||
| -rw-r--r-- | indra/newview/llstartup.cpp | 2 | ||||
| -rwxr-xr-x | indra/newview/llviewermessage.cpp | 5 | ||||
| -rw-r--r-- | indra/newview/llviewerregion.cpp | 81 | ||||
| -rw-r--r-- | indra/newview/llworld.cpp | 2 | 
5 files changed, 70 insertions, 24 deletions
| diff --git a/indra/newview/app_settings/logcontrol.xml b/indra/newview/app_settings/logcontrol.xml index c5561166fc..04b3c81602 100644 --- a/indra/newview/app_settings/logcontrol.xml +++ b/indra/newview/app_settings/logcontrol.xml @@ -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> diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp index 8b71f1067f..e4627b132f 100644 --- a/indra/newview/llstartup.cpp +++ b/indra/newview/llstartup.cpp @@ -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(); diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index 3c0d6189ac..40e6b0d09e 100755 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -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);  } diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp index 2286bb09e1..223f754c2e 100644 --- a/indra/newview/llviewerregion.cpp +++ b/indra/newview/llviewerregion.cpp @@ -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; +} + diff --git a/indra/newview/llworld.cpp b/indra/newview/llworld.cpp index 793becf0c8..d9da639af9 100644 --- a/indra/newview/llworld.cpp +++ b/indra/newview/llworld.cpp @@ -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"]);  	}  }; | 
