in src/aws-cpp-sdk-core/source/client/ClientConfiguration.cpp [177:269]
void setLegacyClientConfigurationParameters(ClientConfiguration& clientConfig)
{
clientConfig.scheme = Aws::Http::Scheme::HTTPS;
clientConfig.useDualStack = false;
clientConfig.useFIPS = false;
clientConfig.maxConnections = 25;
clientConfig.httpRequestTimeoutMs = 0;
clientConfig.requestTimeoutMs = 3000;
clientConfig.connectTimeoutMs = 1000;
clientConfig.enableTcpKeepAlive = true;
clientConfig.tcpKeepAliveIntervalMs = 30000;
clientConfig.lowSpeedLimit = 1;
clientConfig.proxyScheme = Aws::Http::Scheme::HTTP;
clientConfig.proxyPort = 0;
clientConfig.verifySSL = true;
clientConfig.writeRateLimiter = nullptr;
clientConfig.readRateLimiter = nullptr;
clientConfig.httpLibOverride = Aws::Http::TransferLibType::DEFAULT_CLIENT;
clientConfig.followRedirects = FollowRedirectsPolicy::DEFAULT;
clientConfig.disableExpectHeader = false;
clientConfig.enableClockSkewAdjustment = true;
clientConfig.enableHostPrefixInjection = true;
clientConfig.enableHttpClientTrace = false;
if (clientConfig.profileName.empty())
{
clientConfig.profileName = Aws::Auth::GetConfigProfileName();
}
Aws::String disableCompressionConfig = clientConfig.LoadConfigFromEnvOrProfile(
DISABLE_REQUEST_COMPRESSION_ENV_VAR,
clientConfig.profileName,
DISABLE_REQUEST_COMPRESSION_CONFIG_VAR,
{"TRUE", "FALSE", "true", "false"},
"false"
);
if (Aws::Utils::StringUtils::ToLower(disableCompressionConfig.c_str()) == "true") {
clientConfig.requestCompressionConfig.useRequestCompression = Aws::Client::UseRequestCompression::DISABLE;
AWS_LOGSTREAM_DEBUG(CLIENT_CONFIG_TAG, "Request Compression disabled");
} else {
//Using default to true for forward compatibility in case new config is added but SDK is not updated.
clientConfig.requestCompressionConfig.useRequestCompression = Aws::Client::UseRequestCompression::ENABLE;
AWS_LOGSTREAM_DEBUG(CLIENT_CONFIG_TAG, "Request Compression enabled");
}
// Getting min request compression length
Aws::String minRequestCompressionString = Aws::Environment::GetEnv(REQUEST_MIN_COMPRESSION_SIZE_BYTES_ENV_VAR);
if (minRequestCompressionString.empty())
{
minRequestCompressionString = Aws::Config::GetCachedConfigValue(REQUEST_MIN_COMPRESSION_SIZE_BYTES_CONFIG_VAR);
}
if (!minRequestCompressionString.empty()) {
clientConfig.requestCompressionConfig.requestMinCompressionSizeBytes = static_cast<int>(Aws::Utils::StringUtils::ConvertToInt32(minRequestCompressionString.c_str()));
if (clientConfig.requestCompressionConfig.requestMinCompressionSizeBytes > 10485760) {
AWS_LOGSTREAM_ERROR(CLIENT_CONFIG_TAG, "ClientConfiguration for MinReqCompression is unsupported, received: " << clientConfig.requestCompressionConfig.requestMinCompressionSizeBytes);
}
}
AWS_LOGSTREAM_DEBUG(CLIENT_CONFIG_TAG, "ClientConfiguration will use MinReqCompression: " << clientConfig.requestCompressionConfig.requestMinCompressionSizeBytes);
AWS_LOGSTREAM_DEBUG(CLIENT_CONFIG_TAG, "ClientConfiguration will use SDK Auto Resolved profile: [" << clientConfig.profileName << "] if not specified by users.");
clientConfig.region = calculateRegion();
// Set the endpoint to interact with EC2 instance's metadata service
Aws::String ec2MetadataServiceEndpoint = Aws::Environment::GetEnv("AWS_EC2_METADATA_SERVICE_ENDPOINT");
if (! ec2MetadataServiceEndpoint.empty())
{
//By default we use the IPv4 default metadata service address
auto client = Aws::Internal::GetEC2MetadataClient();
if (client != nullptr)
{
client->SetEndpoint(ec2MetadataServiceEndpoint);
}
}
clientConfig.appId = clientConfig.LoadConfigFromEnvOrProfile("AWS_SDK_UA_APP_ID", clientConfig.profileName, "sdk_ua_app_id", {}, "");
clientConfig.checksumConfig.requestChecksumCalculation =
LoadEnumFromString(REQUEST_CHECKSUM_CONFIG_MAPPING,
ClientConfiguration::LoadConfigFromEnvOrProfile("AWS_REQUEST_CHECKSUM_CALCULATION", clientConfig.profileName,
"request_checksum_calculation",
{"when_supported", "when_required"}, "when_supported")
.c_str(),
RequestChecksumCalculation::WHEN_SUPPORTED);
clientConfig.checksumConfig.responseChecksumValidation =
LoadEnumFromString(RESPONSE_CHECKSUM_CONFIG_MAPPING,
ClientConfiguration::LoadConfigFromEnvOrProfile("AWS_RESPONSE_CHECKSUM_VALIDATION", clientConfig.profileName,
"response_checksum_validation",
{"when_supported", "when_required"}, "when_supported")
.c_str(),
ResponseChecksumValidation::WHEN_SUPPORTED);
}