From 363cc7b5bf4806ba3d3ac59bd874841d72696d6a Mon Sep 17 00:00:00 2001 From: Michael Wolfendale <4563722+wolfendale@users.noreply.github.com> Date: Sat, 25 May 2024 20:42:54 +0100 Subject: [PATCH] fix: prevent multi-fragment messages being lost --- prudp_endpoint.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/prudp_endpoint.go b/prudp_endpoint.go index 6449c87..a5b6aff 100644 --- a/prudp_endpoint.go +++ b/prudp_endpoint.go @@ -531,10 +531,10 @@ func (pep *PRUDPEndPoint) handleReliable(packet PRUDPPacketInterface) { defer slidingWindow.Unlock() for _, pendingPacket := range slidingWindow.Update(packet) { - if packet.Type() == constants.DataPacket { + if pendingPacket.Type() == constants.DataPacket { var decryptedPayload []byte - if packet.Version() != 2 { + if pendingPacket.Version() != 2 { decryptedPayload = pendingPacket.decryptPayload() } else { // * PRUDPLite does not encrypt payloads @@ -548,7 +548,7 @@ func (pep *PRUDPEndPoint) handleReliable(packet PRUDPPacketInterface) { payload := slidingWindow.AddFragment(decompressedPayload) - if packet.getFragmentID() == 0 { + if pendingPacket.getFragmentID() == 0 { message := NewRMCMessage(pep) err := message.FromBytes(payload) if err != nil { @@ -558,9 +558,9 @@ func (pep *PRUDPEndPoint) handleReliable(packet PRUDPPacketInterface) { slidingWindow.ResetFragmentedPayload() - packet.SetRMCMessage(message) + pendingPacket.SetRMCMessage(message) - pep.emit("data", packet) + pep.emit("data", pendingPacket) } } }