From 28cd2f8782029e6cf4cc569ecd357c8c9f0b1a64 Mon Sep 17 00:00:00 2001 From: Jocelyn <41338290+jaschrep-msft@users.noreply.github.com> Date: Thu, 9 May 2024 13:36:52 -0400 Subject: [PATCH] expect-continue header compat switch (#43888) --- .../Azure.Storage.Common/src/Shared/CompatSwitches.cs | 5 +++++ sdk/storage/Azure.Storage.Common/src/Shared/Constants.cs | 3 +++ .../src/Shared/ExpectContinueOnThrottlePolicy.cs | 3 ++- .../Azure.Storage.Common/src/Shared/ExpectContinuePolicy.cs | 2 +- .../tests/Azure.Storage.Common.Tests.csproj | 1 + 5 files changed, 12 insertions(+), 2 deletions(-) diff --git a/sdk/storage/Azure.Storage.Common/src/Shared/CompatSwitches.cs b/sdk/storage/Azure.Storage.Common/src/Shared/CompatSwitches.cs index 05a3d8567f78..04e4f7cd4cf9 100644 --- a/sdk/storage/Azure.Storage.Common/src/Shared/CompatSwitches.cs +++ b/sdk/storage/Azure.Storage.Common/src/Shared/CompatSwitches.cs @@ -11,5 +11,10 @@ internal static class CompatSwitches public static bool DisableRequestConditionsValidation => _disableRequestConditionsValidation ??= AppContextSwitchHelper.GetConfigValue(Constants.DisableRequestConditionsValidationSwitchName, Constants.DisableRequestConditionsValidationEnvVar); + + private static bool? _disableExpectContinueHeader; + + public static bool DisableExpectContinueHeader => _disableExpectContinueHeader + ??= AppContextSwitchHelper.GetConfigValue(Constants.DisableExpectContinueHeaderSwitchName, Constants.DisableExpectContinueHeaderEnvVar); } } diff --git a/sdk/storage/Azure.Storage.Common/src/Shared/Constants.cs b/sdk/storage/Azure.Storage.Common/src/Shared/Constants.cs index e0c721ed2466..c8ce04f6f4e4 100644 --- a/sdk/storage/Azure.Storage.Common/src/Shared/Constants.cs +++ b/sdk/storage/Azure.Storage.Common/src/Shared/Constants.cs @@ -123,6 +123,9 @@ internal static class Constants public const string DisableRequestConditionsValidationSwitchName = "Azure.Storage.DisableRequestConditionsValidation"; public const string DisableRequestConditionsValidationEnvVar = "AZURE_STORAGE_DISABLE_REQUEST_CONDITIONS_VALIDATION"; + public const string DisableExpectContinueHeaderSwitchName = "Azure.Storage.DisableExpectContinueHeader"; + public const string DisableExpectContinueHeaderEnvVar = "AZURE_STORAGE_DISABLE_EXPECT_CONTINUE_HEADER"; + public const string DefaultScope = "/.default"; /// diff --git a/sdk/storage/Azure.Storage.Common/src/Shared/ExpectContinueOnThrottlePolicy.cs b/sdk/storage/Azure.Storage.Common/src/Shared/ExpectContinueOnThrottlePolicy.cs index 57bcb6abb62d..5d3c60d61aec 100644 --- a/sdk/storage/Azure.Storage.Common/src/Shared/ExpectContinueOnThrottlePolicy.cs +++ b/sdk/storage/Azure.Storage.Common/src/Shared/ExpectContinueOnThrottlePolicy.cs @@ -24,7 +24,8 @@ public TimeSpan ThrottleInterval public override void OnSendingRequest(HttpMessage message) { if (message.Request.Content == null || - (message.Request.Content.TryComputeLength(out long contentLength) && contentLength < ContentLengthThreshold)) + (message.Request.Content.TryComputeLength(out long contentLength) && contentLength < ContentLengthThreshold) || + CompatSwitches.DisableExpectContinueHeader) { return; } diff --git a/sdk/storage/Azure.Storage.Common/src/Shared/ExpectContinuePolicy.cs b/sdk/storage/Azure.Storage.Common/src/Shared/ExpectContinuePolicy.cs index dfe8afd71fd7..fdd2dcfb143a 100644 --- a/sdk/storage/Azure.Storage.Common/src/Shared/ExpectContinuePolicy.cs +++ b/sdk/storage/Azure.Storage.Common/src/Shared/ExpectContinuePolicy.cs @@ -12,7 +12,7 @@ internal class ExpectContinuePolicy : HttpPipelineSynchronousPolicy public override void OnSendingRequest(HttpMessage message) { - if (message.Request.Content == null) + if (message.Request.Content == null || CompatSwitches.DisableExpectContinueHeader) { return; } diff --git a/sdk/storage/Azure.Storage.Common/tests/Azure.Storage.Common.Tests.csproj b/sdk/storage/Azure.Storage.Common/tests/Azure.Storage.Common.Tests.csproj index 3d9f099791c8..5db86ebee984 100644 --- a/sdk/storage/Azure.Storage.Common/tests/Azure.Storage.Common.Tests.csproj +++ b/sdk/storage/Azure.Storage.Common/tests/Azure.Storage.Common.Tests.csproj @@ -29,6 +29,7 @@ +