* 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
0.6.0-stable
Justin Clarke Casey 2008-10-14 14:27:00 +00:00
parent 3e124a3dba
commit 8ab50fe3ee
2 changed files with 7 additions and 1 deletions

View File

@ -1545,6 +1545,11 @@ namespace OpenSim.Region.ClientStack.LindenUDP
OutPacket(pc, ThrottleOutPacketType.Unknown);
}
/// <summary>
/// Tell the client that an object has been deleted
/// </summary>
/// <param name="regionHandle"></param>
/// <param name="localID"></param>
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);
}

View File

@ -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();