aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
authorMelanie Thielker2009-06-23 14:37:51 +0000
committerMelanie Thielker2009-06-23 14:37:51 +0000
commita2635e43dab05ae6985cfa73a42468225345eab0 (patch)
tree65e1fdbfbf1f3fa5e9b1739267267a811b55e546 /OpenSim/Region
parentAdd RegionSecret to user data structure to provide data update security (diff)
downloadopensim-SC-a2635e43dab05ae6985cfa73a42468225345eab0.zip
opensim-SC-a2635e43dab05ae6985cfa73a42468225345eab0.tar.gz
opensim-SC-a2635e43dab05ae6985cfa73a42468225345eab0.tar.bz2
opensim-SC-a2635e43dab05ae6985cfa73a42468225345eab0.tar.xz
Allow the member list of groups with more than 70 members to be viewed
without crashing
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs78
1 files changed, 42 insertions, 36 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
index 1a43450..a5c0e45 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
@@ -8658,44 +8658,50 @@ namespace OpenSim.Region.ClientStack.LindenUDP
8658 List<GroupMembersData> members = 8658 List<GroupMembersData> members =
8659 m_GroupsModule.GroupMembersRequest(this, groupMembersRequestPacket.GroupData.GroupID); 8659 m_GroupsModule.GroupMembersRequest(this, groupMembersRequestPacket.GroupData.GroupID);
8660 8660
8661 GroupMembersReplyPacket groupMembersReply = (GroupMembersReplyPacket)PacketPool.Instance.GetPacket(PacketType.GroupMembersReply); 8661 while (true)
8662
8663 groupMembersReply.AgentData =
8664 new GroupMembersReplyPacket.AgentDataBlock();
8665 groupMembersReply.GroupData =
8666 new GroupMembersReplyPacket.GroupDataBlock();
8667 groupMembersReply.MemberData =
8668 new GroupMembersReplyPacket.MemberDataBlock[
8669 members.Count];
8670
8671 groupMembersReply.AgentData.AgentID = AgentId;
8672 groupMembersReply.GroupData.GroupID =
8673 groupMembersRequestPacket.GroupData.GroupID;
8674 groupMembersReply.GroupData.RequestID =
8675 groupMembersRequestPacket.GroupData.RequestID;
8676 groupMembersReply.GroupData.MemberCount = members.Count;
8677
8678 int i = 0;
8679 foreach (GroupMembersData m in members)
8680 { 8662 {
8681 groupMembersReply.MemberData[i] = 8663 GroupMembersReplyPacket groupMembersReply = (GroupMembersReplyPacket)PacketPool.Instance.GetPacket(PacketType.GroupMembersReply);
8682 new GroupMembersReplyPacket.MemberDataBlock(); 8664
8683 groupMembersReply.MemberData[i].AgentID = 8665 groupMembersReply.AgentData =
8684 m.AgentID; 8666 new GroupMembersReplyPacket.AgentDataBlock();
8685 groupMembersReply.MemberData[i].Contribution = 8667 groupMembersReply.GroupData =
8686 m.Contribution; 8668 new GroupMembersReplyPacket.GroupDataBlock();
8687 groupMembersReply.MemberData[i].OnlineStatus = 8669 groupMembersReply.MemberData =
8688 Utils.StringToBytes(m.OnlineStatus); 8670 new GroupMembersReplyPacket.MemberDataBlock[
8689 groupMembersReply.MemberData[i].AgentPowers = 8671 members.Count];
8690 m.AgentPowers; 8672
8691 groupMembersReply.MemberData[i].Title = 8673 groupMembersReply.AgentData.AgentID = AgentId;
8692 Utils.StringToBytes(m.Title); 8674 groupMembersReply.GroupData.GroupID =
8693 groupMembersReply.MemberData[i].IsOwner = 8675 groupMembersRequestPacket.GroupData.GroupID;
8694 m.IsOwner; 8676 groupMembersReply.GroupData.RequestID =
8695 i++; 8677 groupMembersRequestPacket.GroupData.RequestID;
8678 groupMembersReply.GroupData.MemberCount = members.Count;
8679
8680 for (int i = 0 ; i < 60 && members.Count > 0 ; i++)
8681 {
8682 GroupMembersData m = members[0];
8683 members.RemoveAt(0);
8684
8685 groupMembersReply.MemberData[i] =
8686 new GroupMembersReplyPacket.MemberDataBlock();
8687 groupMembersReply.MemberData[i].AgentID =
8688 m.AgentID;
8689 groupMembersReply.MemberData[i].Contribution =
8690 m.Contribution;
8691 groupMembersReply.MemberData[i].OnlineStatus =
8692 Utils.StringToBytes(m.OnlineStatus);
8693 groupMembersReply.MemberData[i].AgentPowers =
8694 m.AgentPowers;
8695 groupMembersReply.MemberData[i].Title =
8696 Utils.StringToBytes(m.Title);
8697 groupMembersReply.MemberData[i].IsOwner =
8698 m.IsOwner;
8699 i++;
8700 }
8701 OutPacket(groupMembersReply, ThrottleOutPacketType.Task);
8702 if (members.Count == 0)
8703 break;
8696 } 8704 }
8697
8698 OutPacket(groupMembersReply, ThrottleOutPacketType.Task);
8699 } 8705 }
8700 break; 8706 break;
8701 8707