From: JamJar00 Date: Tue, 31 Oct 2017 15:58:35 +0000 (+0000) Subject: Fix various bugs X-Git-Tag: 1.0.0~94 X-Git-Url: https://git.deb.at/?a=commitdiff_plain;h=a13c82462fcb6877e806b622ac98804aa30ee172;p=rhonda%2Fimpostor.hazel.git Fix various bugs --- diff --git a/Hazel.UnitTests/TestHelper.cs b/Hazel.UnitTests/TestHelper.cs index 0bb1693..1436ff6 100644 --- a/Hazel.UnitTests/TestHelper.cs +++ b/Hazel.UnitTests/TestHelper.cs @@ -35,6 +35,8 @@ namespace Hazel.UnitTests { Trace.WriteLine("Data was received correctly."); + Assert.AreEqual(data.Length, args.Bytes.Length); + for (int i = 0; i < data.Length; i++) { Assert.AreEqual(data[i], args.Bytes[i]); @@ -70,6 +72,8 @@ namespace Hazel.UnitTests { Trace.WriteLine("Data was received correctly."); + Assert.AreEqual(data.Length, innerArgs.Bytes.Length); + for (int i = 0; i < data.Length; i++) { Assert.AreEqual(data[i], innerArgs.Bytes[i]); diff --git a/Hazel/Udp/UdpConnection.Fragmented.cs b/Hazel/Udp/UdpConnection.Fragmented.cs index 96f74de..463fbef 100644 --- a/Hazel/Udp/UdpConnection.Fragmented.cs +++ b/Hazel/Udp/UdpConnection.Fragmented.cs @@ -154,8 +154,9 @@ namespace Hazel.Udp void FinalizeFragmentedMessage(FragmentedMessage message) { IEnumerable orderedFragments = message.received.OrderBy((x) => x.fragmentID); + FragmentedMessage.Fragment last = orderedFragments.Last(); - byte[] completeData = new byte[(orderedFragments.Count() - 1) * FragmentSize + orderedFragments.Last().data.Length]; + byte[] completeData = new byte[(orderedFragments.Count() - 1) * FragmentSize + last.data.Length - last.offset]; int ptr = 0; foreach (FragmentedMessage.Fragment fragment in orderedFragments) { diff --git a/Hazel/Udp/UdpConnectionListener.cs b/Hazel/Udp/UdpConnectionListener.cs index 1d1a1e6..fc68085 100644 --- a/Hazel/Udp/UdpConnectionListener.cs +++ b/Hazel/Udp/UdpConnectionListener.cs @@ -175,8 +175,8 @@ namespace Hazel.Udp //If it's a new connection invoke the NewConnection event. if (!aware) { - byte[] dataBuffer = new byte[buffer.Length - 1]; - Buffer.BlockCopy(buffer, 1, dataBuffer, 0, buffer.Length - 1); + byte[] dataBuffer = new byte[buffer.Length - 3]; + Buffer.BlockCopy(buffer, 3, dataBuffer, 0, buffer.Length - 3); InvokeNewConnection(dataBuffer, connection); } }