Correct a typo in namespace declaration
Also adds a new flag to the PacketManager to force retention of packets
marked reliable (default off)
0.6.0-stable
Melanie Thielker 2008-09-28 18:07:06 +00:00
parent d3bb8e42a6
commit 95c3e0883c
1 changed files with 16 additions and 4 deletions

View File

@ -191,7 +191,16 @@ namespace OpenSim.Region.ClientStack.LindenUDP
private object m_SequenceLock = new object();
private const int MAX_SEQUENCE = 0xFFFFFF;
// Packet dropping
//
List<PacketType> m_ImportantPackets = new List<PacketType>();
private bool m_ReliableIsImportant = false;
public bool ReliableIsImportant
{
get { return m_ReliableIsImportant; }
set { m_ReliableIsImportant = value; }
}
LLPacketServer m_PacketServer;
private byte[] m_ZeroOutBuffer = new byte[4096];
@ -359,12 +368,15 @@ namespace OpenSim.Region.ClientStack.LindenUDP
//
if ((now - data.TickCount) > m_DiscardTimeout)
{
if (!m_ImportantPackets.Contains(packet.Type))
m_NeedAck.Remove(packet.Header.Sequence);
if (!m_ReliableIsImportant || !packet.Header.Reliable)
{
if (!m_ImportantPackets.Contains(packet.Type))
m_NeedAck.Remove(packet.Header.Sequence);
TriggerOnPacketDrop(packet, data.Identifier);
TriggerOnPacketDrop(packet, data.Identifier);
continue;
continue;
}
}
}
}