From 9e37272f0646c9df25979cdc3a5c324a35682718 Mon Sep 17 00:00:00 2001 From: David Fowler Date: Fri, 14 Apr 2017 01:39:56 -0700 Subject: [PATCH] Clean up the logic in DoReceive --- .../SocketConnection.cs | 28 ++++++++----------- 1 file changed, 11 insertions(+), 17 deletions(-) diff --git a/src/Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets/SocketConnection.cs b/src/Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets/SocketConnection.cs index 703fd9a35e..acb1915a01 100644 --- a/src/Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets/SocketConnection.cs +++ b/src/Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets/SocketConnection.cs @@ -84,30 +84,24 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets // Ensure we have some reasonable amount of buffer space var buffer = _input.Alloc(MinAllocBufferSize); - int bytesReceived; - try { - bytesReceived = await _socket.ReceiveAsync(GetArraySegment(buffer.Buffer), SocketFlags.None); + var bytesReceived = await _socket.ReceiveAsync(GetArraySegment(buffer.Buffer), SocketFlags.None); + + if (bytesReceived == 0) + { + // We receive a FIN so throw an exception so that we cancel the input + // with an error + throw new TaskCanceledException("The request was aborted"); + } + + buffer.Advance(bytesReceived); } - catch (Exception) + finally { buffer.Commit(); - throw; } - if (bytesReceived == 0) - { - buffer.Commit(); - - // We receive a FIN so throw an exception so that we cancel the input - // with an error - throw new TaskCanceledException("The request was aborted"); - } - - // Record what data we filled into the buffer and push to pipe - buffer.Advance(bytesReceived); - var result = await buffer.FlushAsync(); if (result.IsCompleted) {