Fix handling of closed streams

This commit is contained in:
Christian Kratky
2017-10-31 14:10:39 +01:00
parent d5dc3a1361
commit 9c46b8fd75
2 changed files with 16 additions and 6 deletions
@@ -151,7 +151,7 @@ namespace MQTTnet.Core.Adapter
receivedMqttPacket = await ReceiveAsync(_channel.ReceiveStream, cancellationToken).ConfigureAwait(false);
}
if (cancellationToken.IsCancellationRequested)
if (receivedMqttPacket == null || cancellationToken.IsCancellationRequested)
{
throw new TaskCanceledException();
}
@@ -190,6 +190,10 @@ namespace MQTTnet.Core.Adapter
private static async Task<ReceivedMqttPacket> ReceiveAsync(Stream stream, CancellationToken cancellationToken)
{
var header = MqttPacketReader.ReadHeaderFromSource(stream, cancellationToken);
if (header == null)
{
return null;
}
if (header.BodyLength == 0)
{