diff options
author | Oz Linden <oz@lindenlab.com> | 2011-12-15 16:06:08 -0500 |
---|---|---|
committer | Oz Linden <oz@lindenlab.com> | 2011-12-15 16:06:08 -0500 |
commit | 94673473edb9d3389f7022a274dccbe67e8d2ff1 (patch) | |
tree | 73adfda69dc821b99d64848a5b2faa5f6d6b4e36 /indra | |
parent | 916c4a79e5a55396a663489c7bab299cdddeb5da (diff) | |
parent | 28f86906a6c0675c6335ca7f408c4e0561dafd89 (diff) |
merge changes for storm-1653
Diffstat (limited to 'indra')
-rwxr-xr-x | indra/newview/llviewermessage.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index ad333a71ff..d7c50ad9a4 100755 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -2235,6 +2235,10 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) { name = LLTrans::getString("Unnamed"); } + + // Preserve the unaltered name for use in group notice mute checking. + std::string original_name = name; + // IDEVO convert new-style "Resident" names for display name = clean_name_from_im(name, dialog); @@ -2441,6 +2445,26 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) break; } + // The group notice packet does not have an AgentID. Obtain one from the name cache. + // If last name is "Resident" strip it out so the cache name lookup works. + U32 index = original_name.find(" Resident"); + if (index != std::string::npos) + { + original_name = original_name.substr(0, index); + } + std::string legacy_name = gCacheName->buildLegacyName(original_name); + LLUUID agent_id; + gCacheName->getUUID(legacy_name, agent_id); + + if (agent_id.isNull()) + { + LL_WARNS("Messaging") << "buildLegacyName returned null while processing " << original_name << LL_ENDL; + } + else if (LLMuteList::getInstance()->isMuted(agent_id)) + { + break; + } + notice_bin_bucket = (struct notice_bucket_full_t*) &binary_bucket[0]; U8 has_inventory = notice_bin_bucket->header.has_inventory; U8 asset_type = notice_bin_bucket->header.asset_type; |