diff options
author | Melanie Thielker | 2009-06-23 14:37:51 +0000 |
---|---|---|
committer | Melanie Thielker | 2009-06-23 14:37:51 +0000 |
commit | a2635e43dab05ae6985cfa73a42468225345eab0 (patch) | |
tree | 65e1fdbfbf1f3fa5e9b1739267267a811b55e546 /OpenSim | |
parent | Add RegionSecret to user data structure to provide data update security (diff) | |
download | opensim-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')
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | 78 |
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 | ||