diff --git a/src/Http/Http/src/StreamResponseBodyFeature.cs b/src/Http/Http/src/StreamResponseBodyFeature.cs
index 717b5c08d2..7e7ccae17c 100644
--- a/src/Http/Http/src/StreamResponseBodyFeature.cs
+++ b/src/Http/Http/src/StreamResponseBodyFeature.cs
@@ -71,10 +71,11 @@ namespace Microsoft.AspNetCore.Http
}
///
- /// Not supported.
+ /// Opts out of write buffering for the response.
///
public virtual void DisableBuffering()
{
+ PriorFeature?.DisableBuffering();
}
///
diff --git a/src/Http/Http/test/Features/StreamResponseBodyFeatureTests.cs b/src/Http/Http/test/Features/StreamResponseBodyFeatureTests.cs
index a7624e0969..0e6c2a4ea9 100644
--- a/src/Http/Http/test/Features/StreamResponseBodyFeatureTests.cs
+++ b/src/Http/Http/test/Features/StreamResponseBodyFeatureTests.cs
@@ -41,6 +41,22 @@ namespace Microsoft.AspNetCore.Http.Features
//Assert
Assert.Equal(1, streamResponseBodyFeature.StartCalled);
}
+
+ [Fact]
+ public void DisableBufferingCallsInnerFeature()
+ {
+ // Arrange
+ var stream = new MemoryStream();
+
+ var innerFeature = new InnerDisableBufferingFeature(stream, null);
+ var streamResponseBodyFeature = new StreamResponseBodyFeature(stream, innerFeature);
+
+ // Act
+ streamResponseBodyFeature.DisableBuffering();
+
+ //Assert
+ Assert.True(innerFeature.DisableBufferingCalled);
+ }
}
public class TestStreamResponseBodyFeature : StreamResponseBodyFeature
@@ -59,4 +75,19 @@ namespace Microsoft.AspNetCore.Http.Features
public int StartCalled { get; private set; }
}
+
+ public class InnerDisableBufferingFeature : StreamResponseBodyFeature
+ {
+ public InnerDisableBufferingFeature(Stream stream, IHttpResponseBodyFeature priorFeature)
+ : base(stream, priorFeature)
+ {
+ }
+
+ public override void DisableBuffering()
+ {
+ DisableBufferingCalled = true;
+ }
+
+ public bool DisableBufferingCalled { get; set; }
+ }
}