diff options
author | Chris Baker <baker@lindenlab.com> | 2012-10-03 21:16:04 +0000 |
---|---|---|
committer | Chris Baker <baker@lindenlab.com> | 2012-10-03 21:16:04 +0000 |
commit | a905f7c74ee35ac16237311eb1d0fbda6577aadb (patch) | |
tree | c44da68a9b15aee8c6bea3f87c89a56d88399822 /indra | |
parent | 5520bebaeb486462a3482173ccc8518d9158e0d5 (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.cpp | 14 |
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; |