summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorChris Baker <baker@lindenlab.com>2012-10-03 21:16:04 +0000
committerChris Baker <baker@lindenlab.com>2012-10-03 21:16:04 +0000
commita905f7c74ee35ac16237311eb1d0fbda6577aadb (patch)
treec44da68a9b15aee8c6bea3f87c89a56d88399822 /indra
parent5520bebaeb486462a3482173ccc8518d9158e0d5 (diff)
- Fixed an issue where group list wouldn't fall back to UDP if the region doesn't support the new GroupMemberData capabaility
- Fixed a potential null pointer crash. Thanks to Ansariel from Firestorm for these! Reviewer: Myself
Diffstat (limited to 'indra')
-rw-r--r--indra/newview/llgroupmgr.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/indra/newview/llgroupmgr.cpp b/indra/newview/llgroupmgr.cpp
index 9c0a30e689..6916cf813a 100644
--- a/indra/newview/llgroupmgr.cpp
+++ b/indra/newview/llgroupmgr.cpp
@@ -1867,6 +1867,12 @@ void LLGroupMgr::sendCapGroupMembersRequest(const LLUUID& group_id)
return;
LLViewerRegion* currentRegion = gAgent.getRegion();
+ // Thank you FS:Ansariel!
+ if(!currentRegion)
+ {
+ LL_WARNS("GrpMgr") << "Agent does not have a current region. Uh-oh!" << LL_ENDL;
+ return;
+ }
// Check to make sure we have our capabilities
if(!currentRegion->capabilitiesReceived())
@@ -1878,6 +1884,14 @@ void LLGroupMgr::sendCapGroupMembersRequest(const LLUUID& group_id)
// Get our capability
std::string cap_url = currentRegion->getCapability("GroupMemberData");
+ // Thank you FS:Ansariel!
+ if(cap_url.empty())
+ {
+ LL_INFOS("GrpMgr") << "Region has no GroupMemberData capability. Falling back to UDP fetch." << LL_ENDL;
+ sendGroupMembersRequest(group_id);
+ return;
+ }
+
// Post to our service. Add a body containing the group_id.
LLSD body = LLSD::emptyMap();
body["group_id"] = group_id;