Skip to content

Commit fc5d4ce

Browse files
this fixes all tests
1 parent 2392390 commit fc5d4ce

File tree

2 files changed

+8
-3
lines changed

2 files changed

+8
-3
lines changed

Infinity.Udp/Fragmented/UdpConnection.Fragmented.cs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ public partial class UdpConnection
99

1010
private ConcurrentDictionary<byte, UdpFragmentedMessage> fragmented_messages_received = new ConcurrentDictionary<byte, UdpFragmentedMessage>();
1111

12-
private const byte fragment_header_size = sizeof(byte) + sizeof(ushort) + sizeof(int) + sizeof(byte);
12+
private const byte fragment_header_size = sizeof(byte) + sizeof(ushort) + sizeof(int) + sizeof(byte) + sizeof(ushort);
1313

1414
private async Task FragmentedSend(byte[] _buffer)
1515
{
@@ -35,6 +35,10 @@ private async Task FragmentedSend(byte[] _buffer)
3535

3636
fragment_buffer[7] = fragment_id;
3737

38+
// Add fragment sequence index
39+
fragment_buffer[8] = (byte)i;
40+
fragment_buffer[9] = (byte)(i >> 8);
41+
3842
Array.Copy(_buffer, fragment_size * i, fragment_buffer, fragment_header_size, data_length);
3943

4044
await WriteBytesToConnection(fragment_buffer, fragment_buffer.Length);
@@ -55,6 +59,7 @@ private async Task FragmentMessageReceive(MessageReader _reader)
5559

5660
var fragments_count = _reader.ReadInt32();
5761
var fragmented_message_id = _reader.ReadByte();
62+
var fragment_index = _reader.ReadUInt16();
5863

5964
UdpFragmentedMessage fragmented_message;
6065

@@ -71,7 +76,7 @@ private async Task FragmentMessageReceive(MessageReader _reader)
7176
fragmented_message = fragmented_messages_received[fragmented_message_id];
7277
}
7378

74-
fragmented_message.Fragments.TryAdd(result.Item2, _reader);
79+
fragmented_message.Fragments.TryAdd(fragment_index, _reader);
7580

7681
if (fragmented_message.Fragments.Count == fragments_count)
7782
{

Infinity.Udp/UdpConnectionListener.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ private async Task StartListeningForData()
113113
reader.Length = result.ReceivedBytes;
114114
reader.Position = 0;
115115

116-
await ReadCallback(reader, remoteEP);
116+
await ReadCallback(reader, result.RemoteEndPoint);
117117
}
118118
catch (SocketException sx)
119119
{

0 commit comments

Comments
 (0)