aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
diff options
context:
space:
mode:
authorJohn Hurliman2009-10-30 11:12:32 -0700
committerJohn Hurliman2009-10-30 11:12:32 -0700
commit5d5d0e699af34b9300ed2f60c0c59b256be3dd89 (patch)
tree9648a62ac8bff803277a156bf247265e05bfe752 /OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
parent* Fix for a potential race condition in ScenePresence.AbsolutePosition (diff)
downloadopensim-SC-5d5d0e699af34b9300ed2f60c0c59b256be3dd89.zip
opensim-SC-5d5d0e699af34b9300ed2f60c0c59b256be3dd89.tar.gz
opensim-SC-5d5d0e699af34b9300ed2f60c0c59b256be3dd89.tar.bz2
opensim-SC-5d5d0e699af34b9300ed2f60c0c59b256be3dd89.tar.xz
* Disables automatic packet splitting on AvatarGroupsReply packets. This packet is a mess and shouldn't be used at all (in favor of the event queue message)
* Clean up the way we send AvatarGroupsReply packets, including clamping the group name and group title
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs26
1 files changed, 14 insertions, 12 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
index bd75f0c..f33d2fa 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
@@ -2793,20 +2793,22 @@ namespace OpenSim.Region.ClientStack.LindenUDP
2793 p.AgentData.AvatarID = avatarID; 2793 p.AgentData.AvatarID = avatarID;
2794 2794
2795 p.GroupData = new AvatarGroupsReplyPacket.GroupDataBlock[data.Length]; 2795 p.GroupData = new AvatarGroupsReplyPacket.GroupDataBlock[data.Length];
2796 int i = 0; 2796
2797 foreach (GroupMembershipData m in data) 2797 for (int i = 0; i < data.Length; i++)
2798 { 2798 {
2799 p.GroupData[i] = new AvatarGroupsReplyPacket.GroupDataBlock(); 2799 GroupMembershipData m = data[i];
2800 p.GroupData[i].GroupPowers = m.GroupPowers; 2800
2801 p.GroupData[i].AcceptNotices = m.AcceptNotices; 2801 AvatarGroupsReplyPacket.GroupDataBlock block = new AvatarGroupsReplyPacket.GroupDataBlock();
2802 p.GroupData[i].GroupTitle = Utils.StringToBytes(m.GroupTitle); 2802 block.GroupPowers = m.GroupPowers;
2803 p.GroupData[i].GroupID = m.GroupID; 2803 block.AcceptNotices = m.AcceptNotices;
2804 p.GroupData[i].GroupName = Utils.StringToBytes(m.GroupName); 2804 block.GroupTitle = Util.StringToBytes256(m.GroupTitle.Substring(0, 20));
2805 p.GroupData[i].GroupInsigniaID = m.GroupPicture; 2805 block.GroupID = m.GroupID;
2806 i++; 2806 block.GroupName = Util.StringToBytes256(m.GroupName.Substring(0, 35));
2807 block.GroupInsigniaID = m.GroupPicture;
2808
2809 p.GroupData[i] = block;
2807 } 2810 }
2808 2811
2809 p.NewGroupData = new AvatarGroupsReplyPacket.NewGroupDataBlock();
2810 p.NewGroupData.ListInProfile = true; 2812 p.NewGroupData.ListInProfile = true;
2811 2813
2812 OutPacket(p, ThrottleOutPacketType.Task); 2814 OutPacket(p, ThrottleOutPacketType.Task);