summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/newview/llstartup.cpp1
-rw-r--r--indra/newview/llviewergenericmessage.cpp5
-rw-r--r--indra/newview/llviewergenericmessage.h1
-rwxr-xr-xscripts/messages/message_template.msg19
-rwxr-xr-xscripts/messages/message_template.msg.sha12
5 files changed, 27 insertions, 1 deletions
diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp
index b7b57c67ea..faa3382b76 100644
--- a/indra/newview/llstartup.cpp
+++ b/indra/newview/llstartup.cpp
@@ -2748,6 +2748,7 @@ void register_viewer_callbacks(LLMessageSystem* msg)
msg->setHandlerFunc("InitiateDownload", process_initiate_download);
msg->setHandlerFunc("LandStatReply", LLFloaterTopObjects::handle_land_reply);
msg->setHandlerFunc("GenericMessage", process_generic_message);
+ msg->setHandlerFunc("GenericStreamingMessage", process_generic_streaming_message);
msg->setHandlerFunc("LargeGenericMessage", process_large_generic_message);
msg->setHandlerFuncFast(_PREHASH_FeatureDisabled, process_feature_disabled_message);
diff --git a/indra/newview/llviewergenericmessage.cpp b/indra/newview/llviewergenericmessage.cpp
index d3de9d72bf..7d33fc0d84 100644
--- a/indra/newview/llviewergenericmessage.cpp
+++ b/indra/newview/llviewergenericmessage.cpp
@@ -92,6 +92,11 @@ void process_generic_message(LLMessageSystem* msg, void**)
}
}
+void process_generic_streaming_message(LLMessageSystem* msg, void**)
+{
+ // placeholder to suppress packet loss reports and log spam (SL-20473)
+}
+
void process_large_generic_message(LLMessageSystem* msg, void**)
{
LLUUID agent_id;
diff --git a/indra/newview/llviewergenericmessage.h b/indra/newview/llviewergenericmessage.h
index 170f38a485..96a73a3d5f 100644
--- a/indra/newview/llviewergenericmessage.h
+++ b/indra/newview/llviewergenericmessage.h
@@ -38,6 +38,7 @@ void send_generic_message(const std::string& method,
const LLUUID& invoice = LLUUID::null);
void process_generic_message(LLMessageSystem* msg, void**);
+void process_generic_streaming_message(LLMessageSystem* msg, void**);
void process_large_generic_message(LLMessageSystem* msg, void**);
diff --git a/scripts/messages/message_template.msg b/scripts/messages/message_template.msg
index a3ddc6d336..c019a76793 100755
--- a/scripts/messages/message_template.msg
+++ b/scripts/messages/message_template.msg
@@ -5790,6 +5790,25 @@ version 2.0
}
}
+// GenericStreamingMessage
+// Optimized generic message for streaming arbitrary data to viewer
+// Avoid payloads over 7KB (8KB ceiling)
+// Method -- magic number indicating method to use to decode payload:
+// 0x4175 - GLTF material override data
+// Payload -- data to be decoded
+{
+ GenericStreamingMessage High 31 Trusted Unencoded
+ {
+ MethodData Single
+ { Method U16 }
+ }
+
+ {
+ DataBlock Single
+ { Data Variable 2 }
+ }
+}
+
// LargeGenericMessage
// Similar to the above messages, but can handle larger payloads and serialized
// LLSD. Uses HTTP transport
diff --git a/scripts/messages/message_template.msg.sha1 b/scripts/messages/message_template.msg.sha1
index 4712a03e8d..5ad85458e9 100755
--- a/scripts/messages/message_template.msg.sha1
+++ b/scripts/messages/message_template.msg.sha1
@@ -1 +1 @@
-dddb11f7e45f1779ff536819f36a20e63d572ba8 \ No newline at end of file
+e3bd0529a647d938ab6d48f26d21dd52c07ebc6e \ No newline at end of file