Merge branch 'benaadams/fastpath-header-enumerator' into dev

This commit is contained in:
Stephen Halter 2015-09-28 12:21:58 -07:00
commit 6d3e5d3bf2
1 changed files with 31 additions and 33 deletions

View File

@ -418,7 +418,7 @@ namespace Microsoft.AspNet.Server.Kestrel.Http
var status = ReasonPhrases.ToStatus(StatusCode, ReasonPhrase); var status = ReasonPhrases.ToStatus(StatusCode, ReasonPhrase);
var responseHeader = CreateResponseHeader(status, appCompleted, ResponseHeaders); var responseHeader = CreateResponseHeader(status, appCompleted);
SocketOutput.Write(responseHeader.Item1, immediate: immediate); SocketOutput.Write(responseHeader.Item1, immediate: immediate);
responseHeader.Item2.Dispose(); responseHeader.Item2.Dispose();
} }
@ -461,8 +461,7 @@ namespace Microsoft.AspNet.Server.Kestrel.Http
private Tuple<ArraySegment<byte>, IDisposable> CreateResponseHeader( private Tuple<ArraySegment<byte>, IDisposable> CreateResponseHeader(
string status, string status,
bool appCompleted, bool appCompleted)
IEnumerable<KeyValuePair<string, StringValues>> headers)
{ {
var writer = new MemoryPoolTextWriter(Memory); var writer = new MemoryPoolTextWriter(Memory);
writer.Write(HttpVersion); writer.Write(HttpVersion);
@ -474,9 +473,8 @@ namespace Microsoft.AspNet.Server.Kestrel.Http
var hasConnection = false; var hasConnection = false;
var hasTransferEncoding = false; var hasTransferEncoding = false;
var hasContentLength = false; var hasContentLength = false;
if (headers != null)
{ foreach (var header in _responseHeaders)
foreach (var header in headers)
{ {
var isConnection = false; var isConnection = false;
if (!hasConnection && if (!hasConnection &&
@ -509,7 +507,7 @@ namespace Microsoft.AspNet.Server.Kestrel.Http
_keepAlive = false; _keepAlive = false;
} }
} }
}
} }
if (_keepAlive && !hasTransferEncoding && !hasContentLength) if (_keepAlive && !hasTransferEncoding && !hasContentLength)