- 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
Chris Baker 2012-10-03 21:16:04 +00:00
parent c043638818
commit f7dca4267b
1 changed files with 14 additions and 0 deletions

View File

@ -1865,6 +1865,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())
@ -1876,6 +1882,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;