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.cpp34
1 files changed, 26 insertions, 8 deletions
diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp
index 3f018fc57c..8b80e567b8 100644
--- a/indra/newview/llviewermessage.cpp
+++ b/indra/newview/llviewermessage.cpp
@@ -344,6 +344,11 @@ void process_layer_data(LLMessageSystem *mesgsys, void **user_data)
{
LLViewerRegion *regionp = LLWorld::getInstance()->getRegion(mesgsys->getSender());
+ if(!regionp)
+ {
+ llwarns << "Invalid region for layer data." << llendl;
+ return;
+ }
S32 size;
S8 type;
@@ -2208,7 +2213,9 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
name = clean_name_from_im(name, dialog);
BOOL is_busy = gAgent.getBusy();
- BOOL is_muted = LLMuteList::getInstance()->isMuted(from_id, name, LLMute::flagTextChat);
+ BOOL is_muted = LLMuteList::getInstance()->isMuted(from_id, name, LLMute::flagTextChat)
+ // object IMs contain sender object id in session_id (STORM-1209)
+ || dialog == IM_FROM_TASK && LLMuteList::getInstance()->isMuted(session_id);
BOOL is_linden = LLMuteList::getInstance()->isLinden(name);
BOOL is_owned_by_me = FALSE;
BOOL is_friend = (LLAvatarTracker::instance().getBuddyInfo(from_id) == NULL) ? false : true;
@@ -2795,7 +2802,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
{
LLVector3 pos, look_at;
U64 region_handle;
- U8 region_access = SIM_ACCESS_MIN;
+ U8 region_access;
std::string region_info = ll_safe_string((char*)binary_bucket, binary_bucket_size);
std::string region_access_str = LLStringUtil::null;
std::string region_access_icn = LLStringUtil::null;
@@ -5366,6 +5373,12 @@ bool attempt_standard_notification(LLMessageSystem* msgsystem)
{
// notification was specified using the new mechanism, so we can just handle it here
std::string notificationID;
+ msgsystem->getStringFast(_PREHASH_AlertInfo, _PREHASH_Message, notificationID);
+ if (!LLNotifications::getInstance()->templateExists(notificationID))
+ {
+ return false;
+ }
+
std::string llsdRaw;
LLSD llsdBlock;
msgsystem->getStringFast(_PREHASH_AlertInfo, _PREHASH_Message, notificationID);
@@ -5522,14 +5535,19 @@ void process_alert_core(const std::string& message, BOOL modal)
}
else
{
- LLSD args;
- std::string new_msg =LLNotifications::instance().getGlobalString(message);
+ // Hack fix for EXP-623 (blame fix on RN :)) to avoid a sim deploy
+ const std::string AUTOPILOT_CANCELED_MSG("Autopilot canceled");
+ if (message.find(AUTOPILOT_CANCELED_MSG) == std::string::npos )
+ {
+ LLSD args;
+ std::string new_msg =LLNotifications::instance().getGlobalString(message);
- std::string localized_msg;
- bool is_message_localized = LLTrans::findString(localized_msg, new_msg);
+ std::string localized_msg;
+ bool is_message_localized = LLTrans::findString(localized_msg, new_msg);
- args["MESSAGE"] = is_message_localized ? localized_msg : new_msg;
- LLNotificationsUtil::add("SystemMessageTip", args);
+ args["MESSAGE"] = is_message_localized ? localized_msg : new_msg;
+ LLNotificationsUtil::add("SystemMessageTip", args);
+ }
}
}