@@ -34,15 +34,14 @@ namespace Endpoint
3434 return std::equal (suffix.rbegin (), suffix.rend (), str.rbegin ());
3535 }
3636
37- void BuiltInParameters::SetFromClientConfiguration (const Client::ClientConfiguration& config)
37+ void BuiltInParameters::SetFromClientConfigurationImpl (const Client::ClientConfiguration& config, const Aws::String& serviceName )
3838 {
3939 bool forceFIPS = false ;
4040 static const char * AWS_REGION = " Region" ;
4141 if (!config.region .empty ()) {
4242 static const char * FIPS_PREFIX = " fips-" ;
4343 static const char * FIPS_SUFFIX = " -fips" ;
4444 if (config.region .rfind (FIPS_PREFIX, 0 ) == 0 ) {
45- // Backward compatibility layer for code hacking previous SDK version
4645 Aws::String regionOverride = config.region .substr (strlen (FIPS_PREFIX));
4746 forceFIPS = true ;
4847 SetStringParameter (AWS_REGION, regionOverride);
@@ -63,65 +62,39 @@ namespace Endpoint
6362
6463 if (!config.endpointOverride .empty ()) {
6564 OverrideEndpoint (config.endpointOverride , config.scheme );
66-
6765 if (config.region .empty ()) {
6866 AWS_LOGSTREAM_WARN (ENDPOINT_BUILTIN_LOG_TAG,
6967 " Endpoint is overridden but region is not set. "
70- " Region is required my many endpoint rule sets to resolve the endpoint. "
68+ " Region is required by many endpoint rule sets to resolve the endpoint. "
7169 " And it is required to compute an aws signature." );
72- SetStringParameter (AWS_REGION, " region-not-set" ); // dummy endpoint resolution parameter
70+ SetStringParameter (AWS_REGION, " region-not-set" );
71+ }
72+ } else if (!serviceName.empty ()) {
73+ Aws::String resolvedEndpoint = Aws::Config::EndpointResolver::EndpointSource (serviceName, config.profileName );
74+ if (!resolvedEndpoint.empty ()) {
75+ OverrideEndpoint (resolvedEndpoint, config.scheme );
7376 }
7477 }
7578 }
7679
80+ void BuiltInParameters::SetFromClientConfiguration (const Client::ClientConfiguration& config)
81+ {
82+ SetFromClientConfiguration (config, " " );
83+ }
84+
7785 void BuiltInParameters::SetFromClientConfiguration (const Client::GenericClientConfiguration& config)
7886 {
79- return SetFromClientConfiguration (static_cast <const Client::ClientConfiguration&>(config));
87+ SetFromClientConfiguration (static_cast <const Client::ClientConfiguration&>(config), " " );
8088 }
8189
8290 void BuiltInParameters::SetFromClientConfiguration (const Client::ClientConfiguration& config, const Aws::String& serviceName)
8391 {
84- bool forceFIPS = false ;
85- static const char * AWS_REGION = " Region" ;
86- if (!config.region .empty ()) {
87- static const char * FIPS_PREFIX = " fips-" ;
88- static const char * FIPS_SUFFIX = " -fips" ;
89- if (config.region .rfind (FIPS_PREFIX, 0 ) == 0 ) {
90- Aws::String regionOverride = config.region .substr (strlen (FIPS_PREFIX));
91- forceFIPS = true ;
92- SetStringParameter (AWS_REGION, regionOverride);
93- } else if (StringEndsWith (config.region , FIPS_SUFFIX)) {
94- Aws::String regionOverride = config.region .substr (0 , config.region .size () - strlen (FIPS_SUFFIX));
95- forceFIPS = true ;
96- SetStringParameter (AWS_REGION, regionOverride);
97- } else {
98- SetStringParameter (AWS_REGION, config.region );
99- }
100- }
101-
102- static const char * AWS_USE_FIPS = " UseFIPS" ;
103- SetBooleanParameter (AWS_USE_FIPS, config.useFIPS || forceFIPS);
104-
105- static const char * AWS_USE_DUAL_STACK = " UseDualStack" ;
106- SetBooleanParameter (AWS_USE_DUAL_STACK, config.useDualStack );
107-
108- if (!config.endpointOverride .empty ()) {
109- OverrideEndpoint (config.endpointOverride , config.scheme );
110- if (config.region .empty ()) {
111- AWS_LOGSTREAM_WARN (ENDPOINT_BUILTIN_LOG_TAG,
112- " Endpoint is overridden but region is not set. "
113- " Region is required by many endpoint rule sets to resolve the endpoint. "
114- " And it is required to compute an aws signature." );
115- SetStringParameter (AWS_REGION, " region-not-set" );
116- }
117- } else if (!serviceName.empty ()) {
118- Aws::Config::EndpointResolver::EndpointSource (serviceName, config.profileName , config.scheme , *this );
119- }
92+ SetFromClientConfigurationImpl (config, serviceName);
12093 }
12194
12295 void BuiltInParameters::SetFromClientConfiguration (const Client::GenericClientConfiguration& config, const Aws::String& serviceName)
12396 {
124- return SetFromClientConfiguration (static_cast <const Client::ClientConfiguration&>(config), serviceName);
97+ SetFromClientConfiguration (static_cast <const Client::ClientConfiguration&>(config), serviceName);
12598 }
12699
127100 const BuiltInParameters::EndpointParameter& BuiltInParameters::GetParameter (const Aws::String& name) const
0 commit comments