diff --git a/indra/llui/llnotifications.cpp b/indra/llui/llnotifications.cpp index 17c8c32ee3..a115c6abb8 100644 --- a/indra/llui/llnotifications.cpp +++ b/indra/llui/llnotifications.cpp @@ -1936,6 +1936,7 @@ void LLPostponedNotification::lookupName(const LLUUID& id, } else { + mFromId = id; // FIRE-29943: Item shared messaged logging to wrong IM logfile if user is offline fetchAvatarName(id); } } diff --git a/indra/llui/llnotifications.h b/indra/llui/llnotifications.h index 1a6b320a4c..aedf5c8dcf 100644 --- a/indra/llui/llnotifications.h +++ b/indra/llui/llnotifications.h @@ -1043,7 +1043,8 @@ protected: LLPostponedNotification() : mParams(), mName(), - mAvatarNameCacheConnection() + mAvatarNameCacheConnection(), + mFromId(LLUUID::null) // FIRE-29943: Item shared messaged logging to wrong IM logfile if user is offline {} virtual ~LLPostponedNotification() @@ -1064,6 +1065,7 @@ protected: LLNotification::Params mParams; std::string mName; boost::signals2::connection mAvatarNameCacheConnection; + LLUUID mFromId; // FIRE-29943: Item shared messaged logging to wrong IM logfile if user is offline }; // Stores only persistent notifications. diff --git a/indra/newview/llimprocessing.cpp b/indra/newview/llimprocessing.cpp index 57c5ea688f..0e3183f5a6 100644 --- a/indra/newview/llimprocessing.cpp +++ b/indra/newview/llimprocessing.cpp @@ -183,7 +183,22 @@ protected: void modifyNotificationParams() { LLSD payload = mParams.payload; - payload["SESSION_NAME"] = mName; + // FIRE-29943: Item shared messaged logging to wrong IM logfile if user is offline + //payload["SESSION_NAME"] = mName; + LLAvatarName av_name; + // This should work since modifyNotificationParams() is invoked after we already + // retrieved the avatar name + if (mFromId.notNull() && LLAvatarNameCache::instance().getName(mFromId, &av_name)) + { + // LLHandlerUtil::logToIM() will transform this into the correct filename + payload["SESSION_NAME"] = av_name.getLegacyName(); + } + else + { + payload["SESSION_NAME"] = mName; + } + // + mParams.payload = payload; } };