diff --git a/src/Microsoft.AspNet.Http.Core/DefaultHttpResponse.cs b/src/Microsoft.AspNet.Http.Core/DefaultHttpResponse.cs index fda8dd0ff3..6e23c35b15 100644 --- a/src/Microsoft.AspNet.Http.Core/DefaultHttpResponse.cs +++ b/src/Microsoft.AspNet.Http.Core/DefaultHttpResponse.cs @@ -111,6 +111,11 @@ namespace Microsoft.AspNet.Http.Core HttpResponseFeature.OnSendingHeaders(callback, state); } + public override void OnResponseCompleted(Action callback, object state) + { + HttpResponseFeature.OnResponseCompleted(callback, state); + } + public override void Redirect(string location, bool permanent) { if (permanent) diff --git a/src/Microsoft.AspNet.Http.Core/HttpResponseFeature.cs b/src/Microsoft.AspNet.Http.Core/HttpResponseFeature.cs index 58d48c49bc..509677f4a7 100644 --- a/src/Microsoft.AspNet.Http.Core/HttpResponseFeature.cs +++ b/src/Microsoft.AspNet.Http.Core/HttpResponseFeature.cs @@ -34,5 +34,10 @@ namespace Microsoft.AspNet.Http.Core { throw new NotSupportedException(); } + + public void OnResponseCompleted(Action callback, object state) + { + throw new NotSupportedException(); + } } } \ No newline at end of file diff --git a/src/Microsoft.AspNet.Http.Interfaces/IHttpResponseFeature.cs b/src/Microsoft.AspNet.Http.Interfaces/IHttpResponseFeature.cs index cd5ffc4ec6..921e70700e 100644 --- a/src/Microsoft.AspNet.Http.Interfaces/IHttpResponseFeature.cs +++ b/src/Microsoft.AspNet.Http.Interfaces/IHttpResponseFeature.cs @@ -15,5 +15,6 @@ namespace Microsoft.AspNet.Http Stream Body { get; set; } bool HeadersSent { get; } void OnSendingHeaders(Action callback, object state); + void OnResponseCompleted(Action callback, object state); } } diff --git a/src/Microsoft.AspNet.Http/HttpResponse.cs b/src/Microsoft.AspNet.Http/HttpResponse.cs index 85dec115e7..5fd8e099e0 100644 --- a/src/Microsoft.AspNet.Http/HttpResponse.cs +++ b/src/Microsoft.AspNet.Http/HttpResponse.cs @@ -27,6 +27,8 @@ namespace Microsoft.AspNet.Http public abstract void OnSendingHeaders(Action callback, object state); + public abstract void OnResponseCompleted(Action callback, object state); + public virtual void Redirect(string location) { Redirect(location, permanent: false); diff --git a/src/Microsoft.AspNet.Owin/OwinFeatureCollection.cs b/src/Microsoft.AspNet.Owin/OwinFeatureCollection.cs index 0c7af1986a..50d58adb9c 100644 --- a/src/Microsoft.AspNet.Owin/OwinFeatureCollection.cs +++ b/src/Microsoft.AspNet.Owin/OwinFeatureCollection.cs @@ -157,6 +157,11 @@ namespace Microsoft.AspNet.Owin register(callback, state); } + void IHttpResponseFeature.OnResponseCompleted(Action callback, object state) + { + throw new NotSupportedException(); + } + IPAddress IHttpConnectionFeature.RemoteIpAddress { get { return IPAddress.Parse(Prop(OwinConstants.CommonKeys.RemoteIpAddress)); }