From 8ab50fe3ee4f30e10f3b199b53f6d1120ea7eb5a Mon Sep 17 00:00:00 2001
From: Justin Clarke Casey
Date: Tue, 14 Oct 2008 14:27:00 +0000
Subject: * 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
---
OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | 7 ++++++-
OpenSim/Region/Environment/Scenes/Scene.Inventory.cs | 1 +
2 files changed, 7 insertions(+), 1 deletion(-)
(limited to 'OpenSim')
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
OutPacket(pc, ThrottleOutPacketType.Unknown);
}
+ ///
+ /// Tell the client that an object has been deleted
+ ///
+ ///
+ ///
public void SendKiPrimitive(ulong regionHandle, uint localID)
{
KillObjectPacket kill = (KillObjectPacket)PacketPool.Instance.GetPacket(PacketType.KillObject);
@@ -1552,7 +1557,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
kill.ObjectData = new KillObjectPacket.ObjectDataBlock[1];
kill.ObjectData[0] = new KillObjectPacket.ObjectDataBlock();
kill.ObjectData[0].ID = localID;
- kill.Header.Reliable = false;
+ kill.Header.Reliable = true;
kill.Header.Zerocoded = true;
OutPacket(kill, ThrottleOutPacketType.Task);
}
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
item.AssetType = asset.Type;
item.InvType = (int)InventoryType.Object;
item.Folder = folderID;
+
if ((remoteClient.AgentId != objectGroup.RootPart.OwnerID) && ExternalChecks.ExternalChecksPropagatePermissions())
{
uint perms=objectGroup.GetEffectivePermissions();
--
cgit v1.1