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 object m_SequenceLock = new object();
private const int MAX_SEQUENCE = 0xFFFFFF; private const int MAX_SEQUENCE = 0xFFFFFF;
// Packet dropping
//
List<PacketType> m_ImportantPackets = new List<PacketType>(); 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; LLPacketServer m_PacketServer;
private byte[] m_ZeroOutBuffer = new byte[4096]; private byte[] m_ZeroOutBuffer = new byte[4096];
@ -358,6 +367,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
// Drop the packets // Drop the packets
// //
if ((now - data.TickCount) > m_DiscardTimeout) if ((now - data.TickCount) > m_DiscardTimeout)
{
if (!m_ReliableIsImportant || !packet.Header.Reliable)
{ {
if (!m_ImportantPackets.Contains(packet.Type)) if (!m_ImportantPackets.Contains(packet.Type))
m_NeedAck.Remove(packet.Header.Sequence); m_NeedAck.Remove(packet.Header.Sequence);
@ -369,6 +380,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
} }
} }
} }
}
// Send the pending packet acks to the client // Send the pending packet acks to the client
// Will send blocks of acks for up to 250 packets // Will send blocks of acks for up to 250 packets