diff --git a/src/Kestrel/ServerRequest.cs b/src/Kestrel/ServerRequest.cs index b167f50278..27398ca987 100644 --- a/src/Kestrel/ServerRequest.cs +++ b/src/Kestrel/ServerRequest.cs @@ -175,6 +175,11 @@ namespace Kestrel } } + bool IHttpResponseFeature.HeadersSent + { + get { return _frame.HeadersSent; } + } + void IHttpResponseFeature.OnSendingHeaders(Action callback, object state) { _frame.OnSendingHeaders(callback, state); diff --git a/src/Microsoft.AspNet.Server.Kestrel/Http/Frame.cs b/src/Microsoft.AspNet.Server.Kestrel/Http/Frame.cs index 1f8552459b..c20ae236b1 100644 --- a/src/Microsoft.AspNet.Server.Kestrel/Http/Frame.cs +++ b/src/Microsoft.AspNet.Server.Kestrel/Http/Frame.cs @@ -54,6 +54,7 @@ namespace Microsoft.AspNet.Server.Kestrel.Http Mode _mode; private bool _resultStarted; + private bool _headersSent; private bool _keepAlive; /* @@ -89,6 +90,10 @@ namespace Microsoft.AspNet.Server.Kestrel.Http public Stream DuplexStream { get; set; } + public bool HeadersSent + { + get { return _headersSent; } + } /* @@ -276,6 +281,8 @@ namespace Microsoft.AspNet.Server.Kestrel.Http FireOnSendingHeaders(); + _headersSent = true; + var status = ReasonPhrases.ToStatus(StatusCode, ReasonPhrase); var responseHeader = CreateResponseHeader(status, ResponseHeaders);