Fix wrong remaining length calculation.

This commit is contained in:
Christian Kratky
2018-06-05 23:39:59 +02:00
parent 1d455221e4
commit 00ac9ce961
3 changed files with 13 additions and 18 deletions
@@ -26,14 +26,15 @@ namespace MQTTnet.Serializer
var fixedHeader = SerializePacket(packet, stream);
var remainingLength = (int)stream.Length - 5;
var remainingLengthSize = MqttPacketWriter.WriteRemainingLength(remainingLength, stream);
var remainingLengthBuffer = MqttPacketWriter.EncodeRemainingLength(remainingLength);
var headerSize = FixedHeaderSize + remainingLengthSize;
var headerSize = FixedHeaderSize + remainingLengthBuffer.Count;
var headerOffset = 5 - headerSize;
// Position cursor on correct offset on beginining of array (has leading 0x0)
stream.Seek(headerOffset, SeekOrigin.Begin);
stream.WriteByte(fixedHeader);
stream.Write(remainingLengthBuffer.Array, remainingLengthBuffer.Offset, remainingLengthBuffer.Count);
#if NET461 || NET452 || NETSTANDARD2_0
var buffer = stream.GetBuffer();