diff options
Diffstat (limited to 'OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs')
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs index ff4abf8..e54cfc2 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs | |||
@@ -410,7 +410,11 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
410 | 410 | ||
411 | OutgoingPacket outgoingPacket = new OutgoingPacket(udpClient, buffer, category); | 411 | OutgoingPacket outgoingPacket = new OutgoingPacket(udpClient, buffer, category); |
412 | 412 | ||
413 | if (!outgoingPacket.Client.EnqueueOutgoing(outgoingPacket)) | 413 | // If a Linden Lab 1.23.5 client receives an update packet after a kill packet for an object, it will |
414 | // continue to display the deleted object until relog. Therefore, we need to always queue a kill object | ||
415 | // packet so that it isn't sent before a queued update packet. | ||
416 | bool requestQueue = type == PacketType.KillObject; | ||
417 | if (!outgoingPacket.Client.EnqueueOutgoing(outgoingPacket, requestQueue)) | ||
414 | SendPacketFinal(outgoingPacket); | 418 | SendPacketFinal(outgoingPacket); |
415 | 419 | ||
416 | #endregion Queue or Send | 420 | #endregion Queue or Send |
@@ -503,7 +507,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
503 | //Interlocked.Increment(ref Stats.ResentPackets); | 507 | //Interlocked.Increment(ref Stats.ResentPackets); |
504 | 508 | ||
505 | // Requeue or resend the packet | 509 | // Requeue or resend the packet |
506 | if (!outgoingPacket.Client.EnqueueOutgoing(outgoingPacket)) | 510 | if (!outgoingPacket.Client.EnqueueOutgoing(outgoingPacket, false)) |
507 | SendPacketFinal(outgoingPacket); | 511 | SendPacketFinal(outgoingPacket); |
508 | } | 512 | } |
509 | } | 513 | } |