diff options
Diffstat (limited to 'indra/newview')
-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; |