diff options
author | Rider Linden <rider@lindenlab.com> | 2025-03-25 10:46:37 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-03-25 10:46:37 -0700 |
commit | e4520849eaa1990569b0d33344d3ba7aa8018c89 (patch) | |
tree | dfa54e83a9ccac2c5346210c05626e61760e2822 /indra/newview/llviewermessage.cpp | |
parent | 423df2ba4b731417796478c449e3e8f3d166ef21 (diff) | |
parent | b86c36eafcdb0fb42c1b68ef671050dea67dc6c3 (diff) |
Merge pull request #3625 from secondlife/rider/bot_tattle
Resubmit PR#2908+2951 Bot self identification and bug fix.
Diffstat (limited to 'indra/newview/llviewermessage.cpp')
-rw-r--r-- | indra/newview/llviewermessage.cpp | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index e52a40ef85..d47a7ffa83 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -2137,6 +2137,21 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) EInstantMessage dialog = (EInstantMessage)d; LLHost sender = msg->getSender(); + LLSD metadata; + if (msg->getNumberOfBlocksFast(_PREHASH_MetaData) > 0) + { + S32 metadata_size = msg->getSizeFast(_PREHASH_MetaData, 0, _PREHASH_Data); + std::string metadata_buffer; + metadata_buffer.resize(metadata_size, 0); + + msg->getBinaryDataFast(_PREHASH_MetaData, _PREHASH_Data, &metadata_buffer[0], metadata_size, 0, metadata_size ); + std::stringstream metadata_stream(metadata_buffer); + if (LLSDSerialize::fromBinary(metadata, metadata_stream, metadata_size) == LLSDParser::PARSE_FAILURE) + { + metadata.clear(); + } + } + LLIMProcessing::processNewMessage(from_id, from_group, to_id, @@ -2151,7 +2166,8 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) position, binary_bucket, binary_bucket_size, - sender); + sender, + metadata); } void send_do_not_disturb_message (LLMessageSystem* msg, const LLUUID& from_id, const LLUUID& session_id) |