diff --git a/src/Microsoft.AspNet.Server.Kestrel/Http/Frame.FeatureCollection.cs b/src/Microsoft.AspNet.Server.Kestrel/Http/Frame.FeatureCollection.cs index 2159d70056..8cac73a946 100644 --- a/src/Microsoft.AspNet.Server.Kestrel/Http/Frame.FeatureCollection.cs +++ b/src/Microsoft.AspNet.Server.Kestrel/Http/Frame.FeatureCollection.cs @@ -24,7 +24,6 @@ namespace Microsoft.AspNet.Server.Kestrel.Http // then the list of `implementedFeatures` in the generated code project MUST also be updated. // See also: tools/Microsoft.AspNet.Server.Kestrel.GeneratedCode/FrameFeatureCollection.cs - private string _scheme; private string _pathBase; private int _featureRevision; @@ -90,12 +89,12 @@ namespace Microsoft.AspNet.Server.Kestrel.Http { get { - return _scheme ?? "http"; + return Scheme ?? "http"; } set { - _scheme = value; + Scheme = value; } } diff --git a/src/Microsoft.AspNet.Server.Kestrel/Http/Frame.cs b/src/Microsoft.AspNet.Server.Kestrel/Http/Frame.cs index c08d0eb684..c13826964b 100644 --- a/src/Microsoft.AspNet.Server.Kestrel/Http/Frame.cs +++ b/src/Microsoft.AspNet.Server.Kestrel/Http/Frame.cs @@ -67,6 +67,7 @@ namespace Microsoft.AspNet.Server.Kestrel.Http Reset(); } + public string Scheme { get; set; } public string Method { get; set; } public string RequestUri { get; set; } public string Path { get; set; } @@ -102,6 +103,7 @@ namespace Microsoft.AspNet.Server.Kestrel.Http ResetResponseHeaders(); ResetFeatureCollection(); + Scheme = null; Method = null; RequestUri = null; Path = null; diff --git a/test/Microsoft.AspNet.Server.KestrelTests/FrameFacts.cs b/test/Microsoft.AspNet.Server.KestrelTests/FrameFacts.cs new file mode 100644 index 0000000000..d76c015fae --- /dev/null +++ b/test/Microsoft.AspNet.Server.KestrelTests/FrameFacts.cs @@ -0,0 +1,26 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +using Microsoft.AspNet.Http.Features; +using Microsoft.AspNet.Server.Kestrel.Http; +using Xunit; + +namespace Microsoft.AspNet.Server.KestrelTests +{ + public class FrameFacts + { + [Fact] + public void ResetResetsScheme() + { + // Arrange + var frame = new Frame(new ConnectionContext() { DateHeaderValueManager = new DateHeaderValueManager() }); + frame.Scheme = "https"; + + // Act + frame.Reset(); + + // Assert + Assert.Equal("http", frame.Get().Scheme); + } + } +}