aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
authorUbitUmarov2016-07-01 17:31:31 +0100
committerUbitUmarov2016-07-01 17:31:31 +0100
commit1777324a862a41c57d12bd6180129a30d9653841 (patch)
tree987b7adaa8d636c1e576a1caa1fe7f9860ac6018 /OpenSim/Region
parentincrease xmlrpc timeout in xmlrpcgroups, disable its cache until its entries ... (diff)
downloadopensim-SC-1777324a862a41c57d12bd6180129a30d9653841.zip
opensim-SC-1777324a862a41c57d12bd6180129a30d9653841.tar.gz
opensim-SC-1777324a862a41c57d12bd6180129a30d9653841.tar.bz2
opensim-SC-1777324a862a41c57d12bd6180129a30d9653841.tar.xz
cleanup a bit AgentGroupDataUpdate sending
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs67
-rw-r--r--OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs5
2 files changed, 33 insertions, 39 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index cc2d1e2..12f6fbd 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -2777,11 +2777,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP
2777 Groupupdate.GroupData = Groups; 2777 Groupupdate.GroupData = Groups;
2778 Groupupdate.AgentData = new AgentGroupDataUpdatePacket.AgentDataBlock(); 2778 Groupupdate.AgentData = new AgentGroupDataUpdatePacket.AgentDataBlock();
2779 Groupupdate.AgentData.AgentID = AgentId; 2779 Groupupdate.AgentData.AgentID = AgentId;
2780 //OutPacket(Groupupdate, ThrottleOutPacketType.Task);
2781 2780
2781 IEventQueue eq = Scene.RequestModuleInterface<IEventQueue>();
2782 try 2782 try
2783 { 2783 {
2784 IEventQueue eq = Scene.RequestModuleInterface<IEventQueue>();
2785 if (eq != null) 2784 if (eq != null)
2786 { 2785 {
2787 eq.GroupMembership(Groupupdate, this.AgentId); 2786 eq.GroupMembership(Groupupdate, this.AgentId);
@@ -2791,8 +2790,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP
2791 { 2790 {
2792 m_log.Error("Unable to send group membership data via eventqueue - exception: " + ex.ToString()); 2791 m_log.Error("Unable to send group membership data via eventqueue - exception: " + ex.ToString());
2793 m_log.Warn("sending group membership data via UDP"); 2792 m_log.Warn("sending group membership data via UDP");
2794 OutPacket(Groupupdate, ThrottleOutPacketType.Task); 2793 eq = null;
2795 } 2794 }
2795
2796 if(eq == null) // udp if no eq
2797 OutPacket(Groupupdate, ThrottleOutPacketType.Task);
2798
2796 } 2799 }
2797 2800
2798 public void SendPartPhysicsProprieties(ISceneEntity entity) 2801 public void SendPartPhysicsProprieties(ISceneEntity entity)
@@ -3423,41 +3426,35 @@ namespace OpenSim.Region.ClientStack.LindenUDP
3423 3426
3424 public void SendAgentGroupDataUpdate(UUID avatarID, GroupMembershipData[] data) 3427 public void SendAgentGroupDataUpdate(UUID avatarID, GroupMembershipData[] data)
3425 { 3428 {
3429 if(avatarID != AgentId)
3430 m_log.Debug("[CLIENT]: SendAgentGroupDataUpdate avatarID != AgentId");
3431
3426 IEventQueue eq = this.Scene.RequestModuleInterface<IEventQueue>(); 3432 IEventQueue eq = this.Scene.RequestModuleInterface<IEventQueue>();
3427 3433 if(eq != null)
3428 // use UDP if no caps
3429 if (eq == null)
3430 { 3434 {
3431 SendGroupMembership(data); 3435 eq.GroupMembershipData(avatarID,data);
3436 }
3437 else
3438 {
3439 // use UDP if no caps
3440 AgentGroupDataUpdatePacket Groupupdate = new AgentGroupDataUpdatePacket();
3441 AgentGroupDataUpdatePacket.GroupDataBlock[] Groups = new AgentGroupDataUpdatePacket.GroupDataBlock[data.Length];
3442 for (int i = 0; i < data.Length; i++)
3443 {
3444 AgentGroupDataUpdatePacket.GroupDataBlock Group = new AgentGroupDataUpdatePacket.GroupDataBlock();
3445 Group.AcceptNotices = data[i].AcceptNotices;
3446 Group.Contribution = data[i].Contribution;
3447 Group.GroupID = data[i].GroupID;
3448 Group.GroupInsigniaID = data[i].GroupPicture;
3449 Group.GroupName = Util.StringToBytes256(data[i].GroupName);
3450 Group.GroupPowers = data[i].GroupPowers;
3451 Groups[i] = Group;
3452 }
3453 Groupupdate.GroupData = Groups;
3454 Groupupdate.AgentData = new AgentGroupDataUpdatePacket.AgentDataBlock();
3455 Groupupdate.AgentData.AgentID = avatarID;
3456 OutPacket(Groupupdate, ThrottleOutPacketType.Task);
3432 } 3457 }
3433
3434 OSDMap llsd = new OSDMap(3);
3435 OSDArray AgentData = new OSDArray(1);
3436 OSDMap AgentDataMap = new OSDMap(1);
3437 AgentDataMap.Add("AgentID", OSD.FromUUID(this.AgentId));
3438 AgentDataMap.Add("AvatarID", OSD.FromUUID(avatarID));
3439 AgentData.Add(AgentDataMap);
3440 llsd.Add("AgentData", AgentData);
3441 OSDArray GroupData = new OSDArray(data.Length);
3442 OSDArray NewGroupData = new OSDArray(data.Length);
3443 foreach (GroupMembershipData m in data)
3444 {
3445 OSDMap GroupDataMap = new OSDMap(6);
3446 OSDMap NewGroupDataMap = new OSDMap(1);
3447 GroupDataMap.Add("GroupPowers", OSD.FromULong(m.GroupPowers));
3448 GroupDataMap.Add("AcceptNotices", OSD.FromBoolean(m.AcceptNotices));
3449 GroupDataMap.Add("GroupTitle", OSD.FromString(m.GroupTitle));
3450 GroupDataMap.Add("GroupID", OSD.FromUUID(m.GroupID));
3451 GroupDataMap.Add("GroupName", OSD.FromString(m.GroupName));
3452 GroupDataMap.Add("GroupInsigniaID", OSD.FromUUID(m.GroupPicture));
3453 NewGroupDataMap.Add("ListInProfile", OSD.FromBoolean(m.ListInProfile));
3454 GroupData.Add(GroupDataMap);
3455 NewGroupData.Add(NewGroupDataMap);
3456 }
3457 llsd.Add("GroupData", GroupData);
3458 llsd.Add("NewGroupData", NewGroupData);
3459
3460 eq.Enqueue(BuildEvent("AgentGroupDataUpdate", llsd), this.AgentId);
3461 } 3458 }
3462 3459
3463 public void SendJoinGroupReply(UUID groupID, bool success) 3460 public void SendJoinGroupReply(UUID groupID, bool success)
diff --git a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs
index 2617723..343935d 100644
--- a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs
+++ b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs
@@ -1409,12 +1409,9 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
1409 1409
1410 GroupMembershipData[] membershipArray = GetProfileListedGroupMemberships(remoteClient, agentID); 1410 GroupMembershipData[] membershipArray = GetProfileListedGroupMemberships(remoteClient, agentID);
1411 IEventQueue eq = remoteClient.Scene.RequestModuleInterface<IEventQueue>(); 1411 IEventQueue eq = remoteClient.Scene.RequestModuleInterface<IEventQueue>();
1412 if (eq != null)
1413 eq.GroupMembershipData(agentID, membershipArray);
1414 else
1415 remoteClient.SendGroupMembership(membershipArray);
1416 1412
1417 remoteClient.RefreshGroupMembership(); 1413 remoteClient.RefreshGroupMembership();
1414 remoteClient.SendAgentGroupDataUpdate(agentID, membershipArray);
1418 } 1415 }
1419 1416
1420 /// <summary> 1417 /// <summary>