Rename KeepAlivePingInterval to KeepAlivePingDelay (#24308)

This commit is contained in:
James Newton-King 2020-07-28 12:32:46 +12:00 committed by GitHub
parent 747957bb40
commit 2243f3f171
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 24 additions and 24 deletions

View File

@ -19,7 +19,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core
private int _maxRequestHeaderFieldSize = (int)Http2PeerSettings.DefaultMaxFrameSize;
private int _initialConnectionWindowSize = 1024 * 128; // Larger than the default 64kb, and larger than any one single stream.
private int _initialStreamWindowSize = 1024 * 96; // Larger than the default 64kb
private TimeSpan _keepAlivePingInterval = TimeSpan.MaxValue;
private TimeSpan _keepAlivePingDelay = TimeSpan.MaxValue;
private TimeSpan _keepAlivePingTimeout = TimeSpan.FromSeconds(20);
/// <summary>
@ -147,18 +147,18 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core
}
/// <summary>
/// Gets or sets the keep alive ping interval. The server will send a keep alive ping to the client if it
/// doesn't receive any frames for this period of time. This property is used together with
/// Gets or sets the keep alive ping delay. The server will send a keep alive ping to the client if it
/// doesn't receive any frames on a connection for this period of time. This property is used together with
/// <see cref="KeepAlivePingTimeout"/> to close broken connections.
/// <para>
/// Interval must be greater than or equal to 1 second. Set to <see cref="TimeSpan.MaxValue"/> to
/// disable the keep alive ping interval.
/// Delay value must be greater than or equal to 1 second. Set to <see cref="TimeSpan.MaxValue"/> to
/// disable the keep alive ping.
/// Defaults to <see cref="TimeSpan.MaxValue"/>.
/// </para>
/// </summary>
public TimeSpan KeepAlivePingInterval
public TimeSpan KeepAlivePingDelay
{
get => _keepAlivePingInterval;
get => _keepAlivePingDelay;
set
{
// Keep alive uses Kestrel's system clock which has a 1 second resolution. Time is greater or equal to clock resolution.
@ -167,13 +167,13 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core
throw new ArgumentOutOfRangeException(nameof(value), CoreStrings.FormatArgumentTimeSpanGreaterOrEqual(Heartbeat.Interval));
}
_keepAlivePingInterval = value != Timeout.InfiniteTimeSpan ? value : TimeSpan.MaxValue;
_keepAlivePingDelay = value != Timeout.InfiniteTimeSpan ? value : TimeSpan.MaxValue;
}
}
/// <summary>
/// Gets or sets the keep alive ping timeout. Keep alive pings are sent when a period of inactivity exceeds
/// the configured <see cref="KeepAlivePingInterval"/> value. The server will close the connection if it
/// the configured <see cref="KeepAlivePingDelay"/> value. The server will close the connection if it
/// doesn't receive any frames within the timeout.
/// <para>
/// Timeout must be greater than or equal to 1 second. Set to <see cref="TimeSpan.MaxValue"/> to

View File

@ -107,10 +107,10 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2
var connectionWindow = (uint)http2Limits.InitialConnectionWindowSize;
_inputFlowControl = new InputFlowControl(connectionWindow, connectionWindow / 2);
if (http2Limits.KeepAlivePingInterval != TimeSpan.MaxValue)
if (http2Limits.KeepAlivePingDelay != TimeSpan.MaxValue)
{
_keepAlive = new Http2KeepAlive(
http2Limits.KeepAlivePingInterval,
http2Limits.KeepAlivePingDelay,
http2Limits.KeepAlivePingTimeout,
context.ServiceContext.SystemClock);
}

View File

@ -12,9 +12,9 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests
public class Http2KeepAliveTests : Http2TestBase
{
[Fact]
public async Task KeepAlivePingInterval_InfiniteTimeSpan_KeepAliveNotEnabled()
public async Task KeepAlivePingDelay_InfiniteTimeSpan_KeepAliveNotEnabled()
{
_serviceContext.ServerOptions.Limits.Http2.KeepAlivePingInterval = Timeout.InfiniteTimeSpan;
_serviceContext.ServerOptions.Limits.Http2.KeepAlivePingDelay = Timeout.InfiniteTimeSpan;
await InitializeConnectionAsync(_noopApplication).DefaultTimeout();
@ -26,7 +26,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests
[Fact]
public async Task KeepAlivePingTimeout_InfiniteTimeSpan_NoGoAway()
{
_serviceContext.ServerOptions.Limits.Http2.KeepAlivePingInterval = TimeSpan.FromSeconds(1);
_serviceContext.ServerOptions.Limits.Http2.KeepAlivePingDelay = TimeSpan.FromSeconds(1);
_serviceContext.ServerOptions.Limits.Http2.KeepAlivePingTimeout = Timeout.InfiniteTimeSpan;
await InitializeConnectionAsync(_noopApplication).DefaultTimeout();
@ -57,7 +57,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests
[Fact]
public async Task IntervalExceeded_WithoutActivity_PingSent()
{
_serviceContext.ServerOptions.Limits.Http2.KeepAlivePingInterval = TimeSpan.FromSeconds(1);
_serviceContext.ServerOptions.Limits.Http2.KeepAlivePingDelay = TimeSpan.FromSeconds(1);
await InitializeConnectionAsync(_noopApplication).DefaultTimeout();
@ -80,7 +80,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests
[Fact]
public async Task IntervalExceeded_WithActivity_NoPingSent()
{
_serviceContext.ServerOptions.Limits.Http2.KeepAlivePingInterval = TimeSpan.FromSeconds(1);
_serviceContext.ServerOptions.Limits.Http2.KeepAlivePingDelay = TimeSpan.FromSeconds(1);
await InitializeConnectionAsync(_noopApplication).DefaultTimeout();
@ -104,7 +104,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests
[Fact]
public async Task IntervalNotExceeded_NoPingSent()
{
_serviceContext.ServerOptions.Limits.Http2.KeepAlivePingInterval = TimeSpan.FromSeconds(5);
_serviceContext.ServerOptions.Limits.Http2.KeepAlivePingDelay = TimeSpan.FromSeconds(5);
await InitializeConnectionAsync(_noopApplication).DefaultTimeout();
@ -122,7 +122,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests
[Fact]
public async Task IntervalExceeded_MultipleTimes_PingsNotSentWhileAwaitingOnAck()
{
_serviceContext.ServerOptions.Limits.Http2.KeepAlivePingInterval = TimeSpan.FromSeconds(1);
_serviceContext.ServerOptions.Limits.Http2.KeepAlivePingDelay = TimeSpan.FromSeconds(1);
await InitializeConnectionAsync(_noopApplication).DefaultTimeout();
@ -146,7 +146,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests
[Fact]
public async Task IntervalExceeded_MultipleTimes_PingSentAfterAck()
{
_serviceContext.ServerOptions.Limits.Http2.KeepAlivePingInterval = TimeSpan.FromSeconds(1);
_serviceContext.ServerOptions.Limits.Http2.KeepAlivePingDelay = TimeSpan.FromSeconds(1);
await InitializeConnectionAsync(_noopApplication).DefaultTimeout();
@ -185,7 +185,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests
[Fact]
public async Task TimeoutExceeded_NoAck_GoAway()
{
_serviceContext.ServerOptions.Limits.Http2.KeepAlivePingInterval = TimeSpan.FromSeconds(1);
_serviceContext.ServerOptions.Limits.Http2.KeepAlivePingDelay = TimeSpan.FromSeconds(1);
_serviceContext.ServerOptions.Limits.Http2.KeepAlivePingTimeout = TimeSpan.FromSeconds(3);
await InitializeConnectionAsync(_noopApplication).DefaultTimeout();
@ -217,7 +217,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests
[Fact]
public async Task TimeoutExceeded_NonPingActivity_NoGoAway()
{
_serviceContext.ServerOptions.Limits.Http2.KeepAlivePingInterval = TimeSpan.FromSeconds(1);
_serviceContext.ServerOptions.Limits.Http2.KeepAlivePingDelay = TimeSpan.FromSeconds(1);
_serviceContext.ServerOptions.Limits.Http2.KeepAlivePingTimeout = TimeSpan.FromSeconds(3);
await InitializeConnectionAsync(_noopApplication).DefaultTimeout();
@ -250,7 +250,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests
[Fact]
public async Task IntervalExceeded_StreamStarted_NoPingSent()
{
_serviceContext.ServerOptions.Limits.Http2.KeepAlivePingInterval = TimeSpan.FromSeconds(1);
_serviceContext.ServerOptions.Limits.Http2.KeepAlivePingDelay = TimeSpan.FromSeconds(1);
await InitializeConnectionAsync(_noopApplication).DefaultTimeout();
@ -275,7 +275,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests
[Fact]
public async Task IntervalExceeded_ConnectionFlowControlUsedUpThenPings_NoPingSent()
{
_serviceContext.ServerOptions.Limits.Http2.KeepAlivePingInterval = TimeSpan.FromSeconds(1);
_serviceContext.ServerOptions.Limits.Http2.KeepAlivePingDelay = TimeSpan.FromSeconds(1);
// Reduce connection window size so that one stream can fill it
_serviceContext.ServerOptions.Limits.Http2.InitialConnectionWindowSize = 65535;
@ -330,7 +330,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests
[Fact]
public async Task TimeoutExceeded_ConnectionFlowControlUsedUpThenPings_NoGoAway()
{
_serviceContext.ServerOptions.Limits.Http2.KeepAlivePingInterval = TimeSpan.FromSeconds(1);
_serviceContext.ServerOptions.Limits.Http2.KeepAlivePingDelay = TimeSpan.FromSeconds(1);
// Reduce connection window size so that one stream can fill it
_serviceContext.ServerOptions.Limits.Http2.InitialConnectionWindowSize = 65535;