From 3ba08e7149e215f4e169ff844e14bf22040735bf Mon Sep 17 00:00:00 2001 From: James Cook Date: Thu, 29 Apr 2010 11:29:35 -0700 Subject: DEV-49489 Viewer supports People API set 409 Conflict error --- indra/newview/llviewerdisplayname.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/indra/newview/llviewerdisplayname.cpp b/indra/newview/llviewerdisplayname.cpp index 4d243ce5ae..beb1dc9c82 100644 --- a/indra/newview/llviewerdisplayname.cpp +++ b/indra/newview/llviewerdisplayname.cpp @@ -121,6 +121,21 @@ public: llinfos << "status " << status << " reason " << reason << llendl; + // If viewer's concept of display name is out-of-date, the set request + // will fail with 409 Conflict. If that happens, fetch up-to-date + // name information. + if (status == 409) + { + LLUUID agent_id = gAgent.getID(); + // Flush stale data + LLAvatarNameCache::erase( agent_id ); + // Queue request for new data + LLAvatarName ignored; + LLAvatarNameCache::get( agent_id, &ignored ); + // Kill name tag, as it is wrong + LLVOAvatar::invalidateNameTag( agent_id ); + } + // inform caller of result LLViewerDisplayName::sSetDisplayNameSignal(success, reason, content); LLViewerDisplayName::sSetDisplayNameSignal.disconnect_all_slots(); -- cgit v1.2.3