summaryrefslogtreecommitdiff
path: root/indra/newview/llviewermessage.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llviewermessage.cpp')
-rw-r--r--indra/newview/llviewermessage.cpp31
1 files changed, 11 insertions, 20 deletions
diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp
index 994a2a4659..eabc81994f 100644
--- a/indra/newview/llviewermessage.cpp
+++ b/indra/newview/llviewermessage.cpp
@@ -206,8 +206,9 @@ void process_logout_reply(LLMessageSystem* msg, void**)
llwarns << "Bogus Logout Reply" << llendl;
}
+ LLInventoryModel::update_map_t parents;
S32 count = msg->getNumberOfBlocksFast( _PREHASH_InventoryData );
- for( S32 i = 0; i < count; i++ )
+ for(S32 i = 0; i < count; ++i)
{
LLUUID item_id;
msg->getUUIDFast(_PREHASH_InventoryData, _PREHASH_ItemID, item_id, i);
@@ -218,36 +219,25 @@ void process_logout_reply(LLMessageSystem* msg, void**)
break;
}
-
- // Update our the asset ids of the inventory items we're currently wearing.
- LLUUID new_asset_id;
- msg->getUUIDFast(_PREHASH_InventoryData, _PREHASH_NewAssetID, new_asset_id, i);
-
+ // We do not need to track the asset ids, just account for an
+ // updated inventory version.
llinfos << "process_logout_reply itemID=" << item_id << llendl;
LLInventoryItem* item = gInventory.getItem( item_id );
if( item )
{
- item->setAssetUUID(new_asset_id);
-
- gInventory.addChangedMask( LLInventoryObserver::INTERNAL, item_id );
- gInventory.notifyObservers();
+ parents[item->getParentUUID()] = 0;
+ gInventory.addChangedMask(LLInventoryObserver::INTERNAL, item_id);
}
else
{
llinfos << "process_logout_reply item not found: " << item_id << llendl;
}
}
-
- /*
- gLogoutTimer.reset();
- gLogoutMaxTime = LOGOUT_REPLY_TIME;
- gViewerWindow->setProgressString("Logging out...");
-
- if (gNoRender)
+ if(!parents.empty())
{
- // Hack so drones can quit with new logout process
- */
-
+ gInventory.accountForUpdate(parents);
+ gInventory.notifyObservers();
+ }
app_force_quit(NULL);
}
@@ -4950,6 +4940,7 @@ void send_generic_message(const char* method,
msg->nextBlockFast(_PREHASH_AgentData);
msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID());
msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID());
+ msg->addUUIDFast(_PREHASH_TransactionID, LLUUID::null); //not used
msg->nextBlock("MethodData");
msg->addString("Method", method);
msg->addUUID("Invoice", invoice);