From f63702754fc0c7ce827b2e2be6519b4ec3ef6497 Mon Sep 17 00:00:00 2001 From: Ajay Bhargav Baaskaran Date: Thu, 19 Feb 2015 14:39:21 -0800 Subject: [PATCH] [Fixes #160] Added OnResponseCompleted to HttpResponse --- src/Microsoft.AspNet.Http.Core/DefaultHttpResponse.cs | 5 +++++ src/Microsoft.AspNet.Http.Core/HttpResponseFeature.cs | 5 +++++ src/Microsoft.AspNet.Http.Interfaces/IHttpResponseFeature.cs | 1 + src/Microsoft.AspNet.Http/HttpResponse.cs | 2 ++ src/Microsoft.AspNet.Owin/OwinFeatureCollection.cs | 5 +++++ 5 files changed, 18 insertions(+) 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)); }