summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview')
-rwxr-xr-xindra/newview/app_settings/settings.xml11
-rwxr-xr-xindra/newview/llappearancemgr.cpp48
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;