Fix an error in group membership sending when the memebr count exceeds 60

Also reduce limit to 40 to allow for last logon dates and titles
0.6.6-post-fixes
Melanie Thielker 2009-06-23 20:27:35 +00:00
parent a2635e43da
commit 2a766b9082
1 changed files with 6 additions and 2 deletions

View File

@ -8660,6 +8660,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP
while (true)
{
int blockCount = members.Count;
if (blockCount > 40)
blockCount = 40;
GroupMembersReplyPacket groupMembersReply = (GroupMembersReplyPacket)PacketPool.Instance.GetPacket(PacketType.GroupMembersReply);
groupMembersReply.AgentData =
@ -8668,7 +8672,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
new GroupMembersReplyPacket.GroupDataBlock();
groupMembersReply.MemberData =
new GroupMembersReplyPacket.MemberDataBlock[
members.Count];
blockCount];
groupMembersReply.AgentData.AgentID = AgentId;
groupMembersReply.GroupData.GroupID =
@ -8677,7 +8681,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
groupMembersRequestPacket.GroupData.RequestID;
groupMembersReply.GroupData.MemberCount = members.Count;
for (int i = 0 ; i < 60 && members.Count > 0 ; i++)
for (int i = 0 ; i < blockCount ; i++)
{
GroupMembersData m = members[0];
members.RemoveAt(0);