aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorJustin Clarke Casey2008-10-14 14:27:00 +0000
committerJustin Clarke Casey2008-10-14 14:27:00 +0000
commit8ab50fe3ee4f30e10f3b199b53f6d1120ea7eb5a (patch)
tree6e75bd8cff0c6e0cf148570e976d5481c96ad100
parent- convert comments into documentation (diff)
downloadopensim-SC_OLD-8ab50fe3ee4f30e10f3b199b53f6d1120ea7eb5a.zip
opensim-SC_OLD-8ab50fe3ee4f30e10f3b199b53f6d1120ea7eb5a.tar.gz
opensim-SC_OLD-8ab50fe3ee4f30e10f3b199b53f6d1120ea7eb5a.tar.bz2
opensim-SC_OLD-8ab50fe3ee4f30e10f3b199b53f6d1120ea7eb5a.tar.xz
* Make KillObjectPackets reliable
* This may help http://opensimulator.org/mantis/view.php?id=2377 where large linksets do not always correctly delete - since a lost kill packet to the client could result in the symptoms described
-rw-r--r--OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs7
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.Inventory.cs1
2 files changed, 7 insertions, 1 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
index ed4ac60..23c6df4 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
@@ -1545,6 +1545,11 @@ namespace OpenSim.Region.ClientStack.LindenUDP
1545 OutPacket(pc, ThrottleOutPacketType.Unknown); 1545 OutPacket(pc, ThrottleOutPacketType.Unknown);
1546 } 1546 }
1547 1547
1548 /// <summary>
1549 /// Tell the client that an object has been deleted
1550 /// </summary>
1551 /// <param name="regionHandle"></param>
1552 /// <param name="localID"></param>
1548 public void SendKiPrimitive(ulong regionHandle, uint localID) 1553 public void SendKiPrimitive(ulong regionHandle, uint localID)
1549 { 1554 {
1550 KillObjectPacket kill = (KillObjectPacket)PacketPool.Instance.GetPacket(PacketType.KillObject); 1555 KillObjectPacket kill = (KillObjectPacket)PacketPool.Instance.GetPacket(PacketType.KillObject);
@@ -1552,7 +1557,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
1552 kill.ObjectData = new KillObjectPacket.ObjectDataBlock[1]; 1557 kill.ObjectData = new KillObjectPacket.ObjectDataBlock[1];
1553 kill.ObjectData[0] = new KillObjectPacket.ObjectDataBlock(); 1558 kill.ObjectData[0] = new KillObjectPacket.ObjectDataBlock();
1554 kill.ObjectData[0].ID = localID; 1559 kill.ObjectData[0].ID = localID;
1555 kill.Header.Reliable = false; 1560 kill.Header.Reliable = true;
1556 kill.Header.Zerocoded = true; 1561 kill.Header.Zerocoded = true;
1557 OutPacket(kill, ThrottleOutPacketType.Task); 1562 OutPacket(kill, ThrottleOutPacketType.Task);
1558 } 1563 }
diff --git a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
index 3414b26..55cc60a 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
@@ -1651,6 +1651,7 @@ namespace OpenSim.Region.Environment.Scenes
1651 item.AssetType = asset.Type; 1651 item.AssetType = asset.Type;
1652 item.InvType = (int)InventoryType.Object; 1652 item.InvType = (int)InventoryType.Object;
1653 item.Folder = folderID; 1653 item.Folder = folderID;
1654
1654 if ((remoteClient.AgentId != objectGroup.RootPart.OwnerID) && ExternalChecks.ExternalChecksPropagatePermissions()) 1655 if ((remoteClient.AgentId != objectGroup.RootPart.OwnerID) && ExternalChecks.ExternalChecksPropagatePermissions())
1655 { 1656 {
1656 uint perms=objectGroup.GetEffectivePermissions(); 1657 uint perms=objectGroup.GetEffectivePermissions();