From 5ad37d3290aea549bc05e8c62f4bd5795bd0bac9 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Fri, 12 Dec 2025 03:38:22 +0000
Subject: [PATCH 1/3] Initial plan
From 2e987d0842077aa230ce97bc98239eb2ff913a25 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Fri, 12 Dec 2025 03:44:41 +0000
Subject: [PATCH 2/3] Update MinResponseDataRate XML documentation with
transport buffer remark
Co-authored-by: JamesNK <303201+JamesNK@users.noreply.github.com>
---
.../Core/src/Features/IHttpMinResponseDataRateFeature.cs | 4 ++++
src/Servers/Kestrel/Core/src/KestrelServerLimits.cs | 4 ++++
2 files changed, 8 insertions(+)
diff --git a/src/Servers/Kestrel/Core/src/Features/IHttpMinResponseDataRateFeature.cs b/src/Servers/Kestrel/Core/src/Features/IHttpMinResponseDataRateFeature.cs
index c90d3cbba0b4..1bf0ef83280f 100644
--- a/src/Servers/Kestrel/Core/src/Features/IHttpMinResponseDataRateFeature.cs
+++ b/src/Servers/Kestrel/Core/src/Features/IHttpMinResponseDataRateFeature.cs
@@ -17,5 +17,9 @@ public interface IHttpMinResponseDataRateFeature
/// This feature is not available for HTTP/2 requests. Instead, use
/// for server-wide configuration which applies to both HTTP/2 and HTTP/1.x.
///
+ ///
+ /// This rate may not accurately measure how much data a client is reading. This is because data is read from the transport
+ /// until the transport's operating system buffers are full.
+ ///
MinDataRate? MinDataRate { get; set; }
}
diff --git a/src/Servers/Kestrel/Core/src/KestrelServerLimits.cs b/src/Servers/Kestrel/Core/src/KestrelServerLimits.cs
index ef6a9ea3264e..5dab91ede06a 100644
--- a/src/Servers/Kestrel/Core/src/KestrelServerLimits.cs
+++ b/src/Servers/Kestrel/Core/src/KestrelServerLimits.cs
@@ -378,6 +378,10 @@ internal void Serialize(Utf8JsonWriter writer)
/// bytes divided by the data rate (i.e. the maximum amount of time that write should take to complete with the specified data rate).
/// The connection is aborted if the write has not completed by the time that timer expires.
///
+ ///
+ /// This rate may not accurately measure how much data a client is reading. This is because data is read from the transport
+ /// until the transport's operating system buffers are full.
+ ///
///
public MinDataRate? MinResponseDataRate { get; set; } =
// Matches the default IIS minBytesPerSecond
From f93771cf413f57d658d40683ad9a28e8739860b6 Mon Sep 17 00:00:00 2001
From: James Newton-King
Date: Fri, 12 Dec 2025 12:00:48 +0800
Subject: [PATCH 3/3] Apply suggestions from code review
---
.../Core/src/Features/IHttpMinResponseDataRateFeature.cs | 2 +-
src/Servers/Kestrel/Core/src/KestrelServerLimits.cs | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/Servers/Kestrel/Core/src/Features/IHttpMinResponseDataRateFeature.cs b/src/Servers/Kestrel/Core/src/Features/IHttpMinResponseDataRateFeature.cs
index 1bf0ef83280f..f69ad83a8d2d 100644
--- a/src/Servers/Kestrel/Core/src/Features/IHttpMinResponseDataRateFeature.cs
+++ b/src/Servers/Kestrel/Core/src/Features/IHttpMinResponseDataRateFeature.cs
@@ -18,7 +18,7 @@ public interface IHttpMinResponseDataRateFeature
/// for server-wide configuration which applies to both HTTP/2 and HTTP/1.x.
///
///
- /// This rate may not accurately measure how much data a client is reading. This is because data is read from the transport
+ /// This rate may not accurately measure how much data a client is reading. This is because data is read from the application
/// until the transport's operating system buffers are full.
///
MinDataRate? MinDataRate { get; set; }
diff --git a/src/Servers/Kestrel/Core/src/KestrelServerLimits.cs b/src/Servers/Kestrel/Core/src/KestrelServerLimits.cs
index 5dab91ede06a..579f631f8819 100644
--- a/src/Servers/Kestrel/Core/src/KestrelServerLimits.cs
+++ b/src/Servers/Kestrel/Core/src/KestrelServerLimits.cs
@@ -379,7 +379,7 @@ internal void Serialize(Utf8JsonWriter writer)
/// The connection is aborted if the write has not completed by the time that timer expires.
///
///
- /// This rate may not accurately measure how much data a client is reading. This is because data is read from the transport
+ /// This rate may not accurately measure how much data a client is reading. This is because data is read from the application
/// until the transport's operating system buffers are full.
///
///