diff options
author | Adam Frisby | 2008-11-08 21:08:01 +0000 |
---|---|---|
committer | Adam Frisby | 2008-11-08 21:08:01 +0000 |
commit | 7308f35a96b734e905eb997b52a4dd61bfd79cfa (patch) | |
tree | e97ccce6b0b0bcf72e73c53e67dccd3588c6df8e /OpenSim/Region | |
parent | * Fixed a major memory leak in packet processing - PacketQueue.Close is never... (diff) | |
download | opensim-SC-7308f35a96b734e905eb997b52a4dd61bfd79cfa.zip opensim-SC-7308f35a96b734e905eb997b52a4dd61bfd79cfa.tar.gz opensim-SC-7308f35a96b734e905eb997b52a4dd61bfd79cfa.tar.bz2 opensim-SC-7308f35a96b734e905eb997b52a4dd61bfd79cfa.tar.xz |
* Fixed issue where incorrect braces nesting resulted in a section of PacketQueue getting disabled.
* This means the recent memory fix should now be working correctly - so the current largest memory leak should be fixed. AssetCache still needs to be addressed however.
Diffstat (limited to 'OpenSim/Region')
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLPacketHandler.cs | 46 |
1 files changed, 22 insertions, 24 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLPacketHandler.cs b/OpenSim/Region/ClientStack/LindenUDP/LLPacketHandler.cs index 7a66925..9dbb00b 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLPacketHandler.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLPacketHandler.cs | |||
@@ -768,35 +768,33 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
768 | 768 | ||
769 | // If we sent a killpacket | 769 | // If we sent a killpacket |
770 | if (packet is KillPacket) | 770 | if (packet is KillPacket) |
771 | { | ||
772 | Abort(); | 771 | Abort(); |
773 | 772 | ||
774 | // Actually make the byte array and send it | 773 | // Actually make the byte array and send it |
775 | byte[] sendbuffer = packet.ToBytes(); | 774 | byte[] sendbuffer = packet.ToBytes(); |
776 | |||
777 | //m_log.DebugFormat( | ||
778 | // "[CLIENT]: In {0} sending packet {1}", | ||
779 | // m_Client.Scene.RegionInfo.ExternalEndPoint.Port, packet.Header.Sequence); | ||
780 | 775 | ||
781 | if (packet.Header.Zerocoded) | 776 | //m_log.DebugFormat( |
782 | { | 777 | // "[CLIENT]: In {0} sending packet {1}", |
783 | int packetsize = Helpers.ZeroEncode(sendbuffer, | 778 | // m_Client.Scene.RegionInfo.ExternalEndPoint.Port, packet.Header.Sequence); |
784 | sendbuffer.Length, m_ZeroOutBuffer); | ||
785 | m_PacketServer.SendPacketTo(m_ZeroOutBuffer, packetsize, | ||
786 | SocketFlags.None, m_Client.CircuitCode); | ||
787 | } | ||
788 | else | ||
789 | { | ||
790 | // Need some extra space in case we need to add proxy | ||
791 | // information to the message later | ||
792 | Buffer.BlockCopy(sendbuffer, 0, m_ZeroOutBuffer, 0, | ||
793 | sendbuffer.Length); | ||
794 | m_PacketServer.SendPacketTo(m_ZeroOutBuffer, | ||
795 | sendbuffer.Length, SocketFlags.None, m_Client.CircuitCode); | ||
796 | } | ||
797 | 779 | ||
798 | PacketPool.Instance.ReturnPacket(packet); | 780 | if (packet.Header.Zerocoded) |
781 | { | ||
782 | int packetsize = Helpers.ZeroEncode(sendbuffer, | ||
783 | sendbuffer.Length, m_ZeroOutBuffer); | ||
784 | m_PacketServer.SendPacketTo(m_ZeroOutBuffer, packetsize, | ||
785 | SocketFlags.None, m_Client.CircuitCode); | ||
786 | } | ||
787 | else | ||
788 | { | ||
789 | // Need some extra space in case we need to add proxy | ||
790 | // information to the message later | ||
791 | Buffer.BlockCopy(sendbuffer, 0, m_ZeroOutBuffer, 0, | ||
792 | sendbuffer.Length); | ||
793 | m_PacketServer.SendPacketTo(m_ZeroOutBuffer, | ||
794 | sendbuffer.Length, SocketFlags.None, m_Client.CircuitCode); | ||
799 | } | 795 | } |
796 | |||
797 | PacketPool.Instance.ReturnPacket(packet); | ||
800 | } | 798 | } |
801 | 799 | ||
802 | private void Abort() | 800 | private void Abort() |