diff options
Diffstat (limited to 'indra')
| -rwxr-xr-x | indra/newview/app_settings/settings.xml | 11 | ||||
| -rwxr-xr-x | indra/newview/llappearancemgr.cpp | 48 | 
2 files changed, 52 insertions, 7 deletions
| diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 826a79b455..215fcf4eab 100755 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -1938,6 +1938,17 @@      <key>Value</key>      <integer>0</integer>    </map> +  <key>DebugAvatarExperimentalServerAppearanceUpdate</key> +  <map> +    <key>Comment</key> +    <string>Experiment with sending full cof_contents instead of cof_version</string> +    <key>Persist</key> +    <integer>1</integer> +    <key>Type</key> +    <string>Boolean</string> +    <key>Value</key> +    <integer>0</integer> +  </map>  	<key>DebugAvatarRezTime</key>  	<map>  		<key>Comment</key> diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp index d8ba4239b7..cc78d5a2fc 100755 --- a/indra/newview/llappearancemgr.cpp +++ b/indra/newview/llappearancemgr.cpp @@ -3177,10 +3177,41 @@ LLSD LLAppearanceMgr::dumpCOF() const  		const LLViewerInventoryItem* inv_item = item_array.get(i).get();  		LLSD item;  		item["item_id"] = inv_item->getUUID(); -		item["linked_item_id"] = inv_item->getLinkedUUID();  		item["name"] = inv_item->getName();  		item["description"] = inv_item->getActualDescription(); -		item["type"] = inv_item->getActualType(); +		item["asset_type"] = inv_item->getActualType(); +		item["inv_type"] = inv_item->getInventoryType(); +		item["linked_id"] = inv_item->getLinkedUUID(); + +		if (LLAssetType::AT_LINK == inv_item->getActualType()) +		{ +			const LLViewerInventoryItem* linked_item = inv_item->getLinkedItem(); +			if (NULL == linked_item) +			{ +				llwarns << "Broken link for item '" << inv_item->getName() +						<< "' (" << inv_item->getUUID() +						<< ") during requestServerAppearanceUpdate" << llendl; +				continue; +			} +			if (linked_item->getAssetUUID().isNull()) +			{ +				llwarns << "Broken link (null asset) for item '" << inv_item->getName() +						<< "' (" << inv_item->getUUID() +						<< ") during requestServerAppearanceUpdate" << llendl; +				continue; +			} +			item["linked_asset_id"] = linked_item->getAssetUUID(); +			item["linked_asset_type"] = linked_item->getType(); +			item["linked_flags"] = LLSD::Integer(linked_item->getFlags()); +		} +		else if (LLAssetType::AT_LINK_FOLDER != inv_item->getActualType()) +		{ +			llwarns << "Non-link item '" << inv_item->getName() +					<< "' (" << inv_item->getUUID() +					<< ") type " << (S32) inv_item->getActualType() +					<< " during requestServerAppearanceUpdate" << llendl; +			continue; +		}  		result.append(item);  	}  	return result; @@ -3212,14 +3243,17 @@ void LLAppearanceMgr::requestServerAppearanceUpdate(LLCurl::ResponderPtr respond  	LLSD body;  	S32 cof_version = getCOFVersion(); -	body["cof_version"] = cof_version; -	if (gSavedSettings.getBOOL("DebugForceAppearanceRequestFailure")) +	if (gSavedSettings.getBOOL("DebugAvatarExperimentalServerAppearanceUpdate"))  	{ -		body["cof_version"] = cof_version+999; +		body["cof_contents"] = dumpCOF();  	} -	if (gSavedSettings.getBOOL("DebugAvatarAppearanceMessage")) +	else  	{ -		body["debug_cof"] = dumpCOF(); 	 +		body["cof_version"] = cof_version; +		if (gSavedSettings.getBOOL("DebugForceAppearanceRequestFailure")) +		{ +			body["cof_version"] = cof_version+999; +		}  	}  	LL_DEBUGS("Avatar") << "request url " << url << " my_cof_version " << cof_version << llendl; | 
