* Adding a try/catch to GroupRoleMembersHandler as a hacky workaround to some NullReferenceExceptions I've had there

* Removing any of the (now irrelevant) outbound throttling code
* Adding another SendPacket() overload

git-svn-id: http://libopenmetaverse.googlecode.com/svn/trunk@1318 52acb1d6-8a22-11de-b505-999d5b087335
This commit is contained in:
John Hurliman
2007-07-18 04:02:50 +00:00
parent f20dc4cb8f
commit ed1f663217
3 changed files with 35 additions and 35 deletions

View File

@@ -1002,24 +1002,31 @@ namespace libsecondlife
GroupRoleMembersReplyPacket members = (GroupRoleMembersReplyPacket)packet;
List<KeyValuePair<LLUUID, LLUUID>> groupRoleMemberCache = null;
lock (GroupRolesMembersCaches)
try
{
// If nothing is registered to receive this RequestID drop the data
if (GroupRolesMembersCaches.ContainsKey(members.AgentData.RequestID))
lock (GroupRolesMembersCaches)
{
groupRoleMemberCache = GroupRolesMembersCaches[members.AgentData.RequestID];
foreach (GroupRoleMembersReplyPacket.MemberDataBlock block in members.MemberData)
// If nothing is registered to receive this RequestID drop the data
if (GroupRolesMembersCaches.ContainsKey(members.AgentData.RequestID))
{
KeyValuePair<LLUUID, LLUUID> rolemember =
new KeyValuePair<LLUUID, LLUUID>(block.RoleID, block.MemberID);
groupRoleMemberCache = GroupRolesMembersCaches[members.AgentData.RequestID];
groupRoleMemberCache.Add(rolemember);
foreach (GroupRoleMembersReplyPacket.MemberDataBlock block in members.MemberData)
{
KeyValuePair<LLUUID, LLUUID> rolemember =
new KeyValuePair<LLUUID, LLUUID>(block.RoleID, block.MemberID);
groupRoleMemberCache.Add(rolemember);
}
}
}
}
catch (Exception e)
{
Client.Log(e.ToString(), Helpers.LogLevel.Error);
}
Client.DebugLog("Pairs Ratio: " + groupRoleMemberCache.Count + "/" + members.AgentData.TotalPairs);
//Client.DebugLog("Pairs Ratio: " + groupRoleMemberCache.Count + "/" + members.AgentData.TotalPairs);
// Check if we've received all the pairs that are showing up
if (OnGroupRolesMembers != null && groupRoleMemberCache != null && groupRoleMemberCache.Count >= members.AgentData.TotalPairs)