aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorUbitUmarov2014-08-21 00:49:10 +0100
committerUbitUmarov2014-08-21 00:49:10 +0100
commit5bf145a3977a55c474106bbe2a6c107dd9457f0d (patch)
treeb43c772cdb4c15de78e8262b366a26af3d2fefae
parent revert droping udp packet resends after 6 retries, keep resending. (diff)
downloadopensim-SC_OLD-5bf145a3977a55c474106bbe2a6c107dd9457f0d.zip
opensim-SC_OLD-5bf145a3977a55c474106bbe2a6c107dd9457f0d.tar.gz
opensim-SC_OLD-5bf145a3977a55c474106bbe2a6c107dd9457f0d.tar.bz2
opensim-SC_OLD-5bf145a3977a55c474106bbe2a6c107dd9457f0d.tar.xz
add a direct sendpartfullUpdate to send a full object update to a part,
optionally overriding its parentID. check what it does to attachments
-rw-r--r--OpenSim/Framework/IClientAPI.cs2
-rw-r--r--OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs26
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs4
-rw-r--r--OpenSim/Region/OptionalModules/Agent/InternetRelayClientView/Server/IRCClientView.cs3
-rw-r--r--OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs4
-rw-r--r--OpenSim/Tests/Common/Mock/TestClient.cs4
6 files changed, 43 insertions, 0 deletions
diff --git a/OpenSim/Framework/IClientAPI.cs b/OpenSim/Framework/IClientAPI.cs
index 3b0430b..d73802e 100644
--- a/OpenSim/Framework/IClientAPI.cs
+++ b/OpenSim/Framework/IClientAPI.cs
@@ -1116,6 +1116,8 @@ namespace OpenSim.Framework
1116 /// <param name="localID"></param> 1116 /// <param name="localID"></param>
1117 void SendKillObject(List<uint> localID); 1117 void SendKillObject(List<uint> localID);
1118 1118
1119 void SendPartFullUpdate(ISceneEntity ent, uint? parentID);
1120
1119 void SendAnimations(UUID[] animID, int[] seqs, UUID sourceAgentId, UUID[] objectIDs); 1121 void SendAnimations(UUID[] animID, int[] seqs, UUID sourceAgentId, UUID[] objectIDs);
1120 void SendRegionHandshake(RegionInfo regionInfo, RegionHandshakeArgs args); 1122 void SendRegionHandshake(RegionInfo regionInfo, RegionHandshakeArgs args);
1121 1123
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index 475cfe2..06f1301 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -4208,9 +4208,35 @@ namespace OpenSim.Region.ClientStack.LindenUDP
4208 OutPacket(packet, ThrottleOutPacketType.Task, true); 4208 OutPacket(packet, ThrottleOutPacketType.Task, true);
4209 } 4209 }
4210 4210
4211
4212
4211 #endregion Packet Sending 4213 #endregion Packet Sending
4214
4212 } 4215 }
4213 4216
4217 // hack.. dont use
4218 public void SendPartFullUpdate(ISceneEntity ent, uint? parentID)
4219 {
4220 if (ent is SceneObjectPart)
4221 {
4222 SceneObjectPart part = (SceneObjectPart)ent;
4223 ObjectUpdatePacket packet = (ObjectUpdatePacket)PacketPool.Instance.GetPacket(PacketType.ObjectUpdate);
4224 packet.RegionData.RegionHandle = m_scene.RegionInfo.RegionHandle;
4225 packet.RegionData.TimeDilation = 1;
4226 packet.ObjectData = new ObjectUpdatePacket.ObjectDataBlock[1];
4227
4228 ObjectUpdatePacket.ObjectDataBlock blk = CreatePrimUpdateBlock(part, this.m_agentId);
4229 if (parentID.HasValue)
4230 {
4231 blk.ParentID = parentID.Value;
4232 }
4233
4234 packet.ObjectData[0] = blk;
4235
4236 OutPacket(packet, ThrottleOutPacketType.Task, true);
4237 }
4238 }
4239
4214 public void ReprioritizeUpdates() 4240 public void ReprioritizeUpdates()
4215 { 4241 {
4216 lock (m_entityUpdates.SyncRoot) 4242 lock (m_entityUpdates.SyncRoot)
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index 5ebf3db..73283ed 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -1916,6 +1916,7 @@ namespace OpenSim.Region.Framework.Scenes
1916 if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && p.GodLevel < 200) 1916 if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && p.GodLevel < 200)
1917 return; 1917 return;
1918 1918
1919 p.ControllingClient.SendPartFullUpdate(sog.RootPart,LocalId + 1);
1919 sog.SendFullUpdateToClient(p.ControllingClient); 1920 sog.SendFullUpdateToClient(p.ControllingClient);
1920 SendFullUpdateToClient(p.ControllingClient); // resend our data by updates path 1921 SendFullUpdateToClient(p.ControllingClient); // resend our data by updates path
1921 }); 1922 });
@@ -4746,7 +4747,10 @@ namespace OpenSim.Region.Framework.Scenes
4746 foreach (SceneObjectGroup sog in m_attachments) 4747 foreach (SceneObjectGroup sog in m_attachments)
4747 { 4748 {
4748 if (p == this || !sog.HasPrivateAttachmentPoint) 4749 if (p == this || !sog.HasPrivateAttachmentPoint)
4750 {
4751 p.ControllingClient.SendPartFullUpdate(sog.RootPart, LocalId + 1);
4749 sog.SendFullUpdateToClient(p.ControllingClient); 4752 sog.SendFullUpdateToClient(p.ControllingClient);
4753 }
4750 } 4754 }
4751 SendFullUpdateToClient(p.ControllingClient); // resend our data by updates path 4755 SendFullUpdateToClient(p.ControllingClient); // resend our data by updates path
4752 } 4756 }
diff --git a/OpenSim/Region/OptionalModules/Agent/InternetRelayClientView/Server/IRCClientView.cs b/OpenSim/Region/OptionalModules/Agent/InternetRelayClientView/Server/IRCClientView.cs
index f35ea92..2112b71 100644
--- a/OpenSim/Region/OptionalModules/Agent/InternetRelayClientView/Server/IRCClientView.cs
+++ b/OpenSim/Region/OptionalModules/Agent/InternetRelayClientView/Server/IRCClientView.cs
@@ -1702,5 +1702,8 @@ namespace OpenSim.Region.OptionalModules.Agent.InternetRelayClientView.Server
1702 { 1702 {
1703 } 1703 }
1704 1704
1705 public void SendPartFullUpdate(ISceneEntity ent, uint? parentID)
1706 {
1707 }
1705 } 1708 }
1706} 1709}
diff --git a/OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs b/OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs
index 7002d75..fa1d38a 100644
--- a/OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs
+++ b/OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs
@@ -1272,5 +1272,9 @@ namespace OpenSim.Region.OptionalModules.World.NPC
1272 { 1272 {
1273 } 1273 }
1274 1274
1275 public void SendPartFullUpdate(ISceneEntity ent, uint? parentID)
1276 {
1277 }
1278
1275 } 1279 }
1276} 1280}
diff --git a/OpenSim/Tests/Common/Mock/TestClient.cs b/OpenSim/Tests/Common/Mock/TestClient.cs
index f3eaed3..2758030 100644
--- a/OpenSim/Tests/Common/Mock/TestClient.cs
+++ b/OpenSim/Tests/Common/Mock/TestClient.cs
@@ -536,6 +536,10 @@ namespace OpenSim.Tests.Common.Mock
536 ReceivedKills.AddRange(localID); 536 ReceivedKills.AddRange(localID);
537 } 537 }
538 538
539 public void SendPartFullUpdate(ISceneEntity ent, uint? parentID)
540 {
541 }
542
539 public virtual void SetChildAgentThrottle(byte[] throttle) 543 public virtual void SetChildAgentThrottle(byte[] throttle)
540 { 544 {
541 } 545 }