summaryrefslogtreecommitdiff
path: root/indra/newview/llviewerregion.cpp
diff options
context:
space:
mode:
authorAndrew Meadows <leviathan@lindenlab.com>2026-05-27 09:33:09 -0700
committerGitHub <noreply@github.com>2026-05-27 09:33:09 -0700
commitf99e2233a40e3a7b88e6c54aa89a1bc0bcd76456 (patch)
treed9853e2f709615082770f2ea8ece4801345b866b /indra/newview/llviewerregion.cpp
parente63651672fe66fe2c60bfb6c823fe78ed6f1b28d (diff)
Log failed delivery of crucial vewer-->simulator connection UDP messages (#5568)
Diffstat (limited to 'indra/newview/llviewerregion.cpp')
-rwxr-xr-xindra/newview/llviewerregion.cpp21
1 files changed, 20 insertions, 1 deletions
diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp
index dd02cca50a..5f73d8e901 100755
--- a/indra/newview/llviewerregion.cpp
+++ b/indra/newview/llviewerregion.cpp
@@ -3207,7 +3207,26 @@ void LLViewerRegion::unpackRegionHandshake()
flags |= 0x00000002; //set the bit 1 to be 1 to tell sim the cache file is empty, no need to send cache probes.
}
msg->addU32("Flags", flags );
- msg->sendReliable(host);
+
+ // build a lambda to be used as callback on ACK or timeout
+ void (*region_handshake_reply_callback)(void**, S32) = [](void**, S32 result)
+ {
+ if(LLApp::isExiting()) return;
+ if (result != LL_ERR_NOERR)
+ {
+ LL_WARNS("Messaging") << "RegionHandshakeReply failed with err=" << result << LL_ENDL;
+ }
+ };
+
+ // This is a crucial message for establishing a connection to a region
+ // (either the main region or a visible neighbor).
+ msg->sendReliable(
+ host,
+ gSavedSettings.getS32("UseCircuitCodeMaxRetries"),
+ false,
+ (F32Seconds)gSavedSettings.getF32("UseCircuitCodeTimeout"),
+ region_handshake_reply_callback,
+ NULL);
mRegionTimer.reset(); //reset region timer.
}