diff options
author | Melanie Thielker | 2008-12-17 20:21:48 +0000 |
---|---|---|
committer | Melanie Thielker | 2008-12-17 20:21:48 +0000 |
commit | 5320f0f33ce08e5fdd0380ea3bfd3e0fb00bae8e (patch) | |
tree | 694794e42b83eed8e0f4417f60a9e25ae9cef5e3 /OpenSim/Region | |
parent | * revert r7724 so that PresenceChildStatus() starts throwing NRE's again (diff) | |
download | opensim-SC-5320f0f33ce08e5fdd0380ea3bfd3e0fb00bae8e.zip opensim-SC-5320f0f33ce08e5fdd0380ea3bfd3e0fb00bae8e.tar.gz opensim-SC-5320f0f33ce08e5fdd0380ea3bfd3e0fb00bae8e.tar.bz2 opensim-SC-5320f0f33ce08e5fdd0380ea3bfd3e0fb00bae8e.tar.xz |
Stop packets that may be resent from being returned to the packet pool.
FWIW
Diffstat (limited to 'OpenSim/Region')
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLPacketHandler.cs | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLPacketHandler.cs b/OpenSim/Region/ClientStack/LindenUDP/LLPacketHandler.cs index 83e77b7..4964efc 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLPacketHandler.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLPacketHandler.cs | |||
@@ -370,6 +370,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
370 | { | 370 | { |
371 | m_NeedAck.Remove(packet.Header.Sequence); | 371 | m_NeedAck.Remove(packet.Header.Sequence); |
372 | TriggerOnPacketDrop(packet, data.Identifier); | 372 | TriggerOnPacketDrop(packet, data.Identifier); |
373 | PacketPool.Instance.ReturnPacket(packet); | ||
373 | continue; | 374 | continue; |
374 | } | 375 | } |
375 | 376 | ||
@@ -625,6 +626,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
625 | return; | 626 | return; |
626 | 627 | ||
627 | m_NeedAck.Remove(id); | 628 | m_NeedAck.Remove(id); |
629 | PacketPool.Instance.ReturnPacket(data.Packet); | ||
628 | m_UnackedBytes -= data.Length; | 630 | m_UnackedBytes -= data.Length; |
629 | } | 631 | } |
630 | } | 632 | } |
@@ -735,6 +737,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
735 | if (data.Identifier != null && data.Identifier == id) | 737 | if (data.Identifier != null && data.Identifier == id) |
736 | { | 738 | { |
737 | m_NeedAck.Remove(data.Packet.Header.Sequence); | 739 | m_NeedAck.Remove(data.Packet.Header.Sequence); |
740 | PacketPool.Instance.ReturnPacket(data.Packet); | ||
738 | return; | 741 | return; |
739 | } | 742 | } |
740 | } | 743 | } |
@@ -804,7 +807,11 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
804 | sendbuffer.Length, SocketFlags.None, m_Client.CircuitCode); | 807 | sendbuffer.Length, SocketFlags.None, m_Client.CircuitCode); |
805 | } | 808 | } |
806 | 809 | ||
807 | PacketPool.Instance.ReturnPacket(packet); | 810 | // If this is a reliable packet, we are still holding a ref |
811 | // Dont't return in that case | ||
812 | // | ||
813 | if (!packet.Header.Reliable) | ||
814 | PacketPool.Instance.ReturnPacket(packet); | ||
808 | } | 815 | } |
809 | 816 | ||
810 | private void Abort() | 817 | private void Abort() |