diff options
author | Rider Linden <rider@lindenlab.com> | 2016-03-01 12:13:18 -0800 |
---|---|---|
committer | Rider Linden <rider@lindenlab.com> | 2016-03-01 12:13:18 -0800 |
commit | 217f10f122ba72bcab7b91e3954669e184471fb9 (patch) | |
tree | b1aa9f434fc81b34653995c62d537ec80e176607 /indra | |
parent | 9fbcaa5b9a6b3bfe762f5bb34951fbf7f99ecc1b (diff) |
MAINT-5693: Do not rerequest old bakes. If a stale bake is received for processing do not processes it (Only allow newer appearances to process... never older)
Diffstat (limited to 'indra')
-rwxr-xr-x | indra/newview/llappearancemgr.cpp | 8 | ||||
-rwxr-xr-x | indra/newview/llvoavatar.cpp | 9 |
2 files changed, 14 insertions, 3 deletions
diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp index 963317affd..ec859b8709 100755 --- a/indra/newview/llappearancemgr.cpp +++ b/indra/newview/llappearancemgr.cpp @@ -3422,12 +3422,14 @@ void LLAppearanceMgr::serverAppearanceUpdateCoro() if (cofVersion < lastRcv) { LL_WARNS("Avatar") << "Have already received update for cof version " << lastRcv - << " but re-requesting for " << cofVersion << LL_ENDL; + << " ignoring request for " << cofVersion << LL_ENDL; + return; } - if (lastReq >= cofVersion) + if (lastReq > cofVersion) { LL_WARNS("Avatar") << "Request already in flight for cof version " << lastReq - << " re-requesting for " << cofVersion << LL_ENDL; + << " ignoring request for " << cofVersion << LL_ENDL; + return; } } diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index 17722e31ca..62ee1a6424 100755 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -7356,6 +7356,7 @@ bool resolve_appearance_version(const LLAppearanceMessageContents& contents, S32 //----------------------------------------------------------------------------- void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys ) { + static S32 largestCOFSeen(LLViewerInventoryCategory::VERSION_UNKNOWN); LL_DEBUGS("Avatar") << "starts" << LL_ENDL; bool enable_verbose_dumps = gSavedSettings.getBOOL("DebugAvatarAppearanceMessage"); @@ -7393,6 +7394,14 @@ void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys ) S32 this_update_cof_version = contents.mCOFVersion; S32 last_update_request_cof_version = mLastUpdateRequestCOFVersion; + if (largestCOFSeen > this_update_cof_version) + { + LL_WARNS("Avatar") << "Already processed appearance for COF version " << + largestCOFSeen << ", discarding appearance with COF " << this_update_cof_version << LL_ENDL; + return; + } + largestCOFSeen = this_update_cof_version; + if( isSelf() ) { LL_DEBUGS("Avatar") << "this_update_cof_version " << this_update_cof_version |