From f7a5c38f65182814eefd5d6c5008d48704129dcd Mon Sep 17 00:00:00 2001 From: Stephen Halter Date: Mon, 16 Nov 2015 15:10:30 -0800 Subject: [PATCH] Follow common pattern for implementing IHttpRequestLifetimeFeature --- .../Http/Frame.FeatureCollection.cs | 14 ++++++++++++-- src/Microsoft.AspNet.Server.Kestrel/Http/Frame.cs | 4 +++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/Microsoft.AspNet.Server.Kestrel/Http/Frame.FeatureCollection.cs b/src/Microsoft.AspNet.Server.Kestrel/Http/Frame.FeatureCollection.cs index b14f968f16..f0406a7aa5 100644 --- a/src/Microsoft.AspNet.Server.Kestrel/Http/Frame.FeatureCollection.cs +++ b/src/Microsoft.AspNet.Server.Kestrel/Http/Frame.FeatureCollection.cs @@ -231,6 +231,18 @@ namespace Microsoft.AspNet.Server.Kestrel.Http } } + CancellationToken IHttpRequestLifetimeFeature.RequestAborted + { + get + { + return RequestAborted; + } + set + { + RequestAborted = value; + } + } + bool IHttpResponseFeature.HasStarted { get { return HasResponseStarted; } @@ -263,8 +275,6 @@ namespace Microsoft.AspNet.Server.Kestrel.Http bool IHttpConnectionFeature.IsLocal { get; set; } - CancellationToken IHttpRequestLifetimeFeature.RequestAborted { get; set; } - object IFeatureCollection.this[Type key] { get { return FastFeatureGet(key); } diff --git a/src/Microsoft.AspNet.Server.Kestrel/Http/Frame.cs b/src/Microsoft.AspNet.Server.Kestrel/Http/Frame.cs index 521140bfdf..16fa98eae7 100644 --- a/src/Microsoft.AspNet.Server.Kestrel/Http/Frame.cs +++ b/src/Microsoft.AspNet.Server.Kestrel/Http/Frame.cs @@ -89,6 +89,8 @@ namespace Microsoft.AspNet.Server.Kestrel.Http public Stream DuplexStream { get; set; } + public CancellationToken RequestAborted { get; set; } + public bool HasResponseStarted { get { return _responseStarted; } @@ -241,7 +243,7 @@ namespace Microsoft.AspNet.Server.Kestrel.Http DuplexStream = new FrameDuplexStream(RequestBody, ResponseBody); _requestAbortCts = CancellationTokenSource.CreateLinkedTokenSource(_disconnectCts.Token); - ((IHttpRequestLifetimeFeature)this).RequestAborted = _requestAbortCts.Token; + RequestAborted = _requestAbortCts.Token; var httpContext = HttpContextFactory.Create(this); try