From ffc5239b4c9511d5d8663e37e787a07401792364 Mon Sep 17 00:00:00 2001 From: lidgren Date: Fri, 7 Feb 2014 08:18:02 +0000 Subject: [PATCH] Fixed duplicate detection for unreliable sequenced data; thanks deadpolygon for fix --- Lidgren.Network/NetPeer.LatencySimulation.cs | 4 ++++ Lidgren.Network/NetUnreliableSequencedReceiver.cs | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/Lidgren.Network/NetPeer.LatencySimulation.cs b/Lidgren.Network/NetPeer.LatencySimulation.cs index dc01fd6..1f9760f 100644 --- a/Lidgren.Network/NetPeer.LatencySimulation.cs +++ b/Lidgren.Network/NetPeer.LatencySimulation.cs @@ -66,6 +66,10 @@ namespace Lidgren.Network // LogVerbose("Sending packet " + numBytes + " bytes"); bool wasSent = ActuallySendPacket(m_sendBuffer, numBytes, target, out connectionReset); // TODO: handle wasSent == false? + + if (m_configuration.m_duplicates > 0.0f && NetRandom.Instance.NextSingle() < m_configuration.m_duplicates) + ActuallySendPacket(m_sendBuffer, numBytes, target, out connectionReset); // send it again! + return; } diff --git a/Lidgren.Network/NetUnreliableSequencedReceiver.cs b/Lidgren.Network/NetUnreliableSequencedReceiver.cs index 6c9e968..ee384f4 100644 --- a/Lidgren.Network/NetUnreliableSequencedReceiver.cs +++ b/Lidgren.Network/NetUnreliableSequencedReceiver.cs @@ -18,7 +18,7 @@ namespace Lidgren.Network // ack no matter what m_connection.QueueAck(msg.m_receivedMessageType, nr); - int relate = NetUtility.RelativeSequenceNumber(nr, m_lastReceivedSequenceNumber); + int relate = NetUtility.RelativeSequenceNumber(nr, m_lastReceivedSequenceNumber + 1); if (relate < 0) return; // drop if late