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 | |
| 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
| -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;  | 
