Skip to content

Commit b18c2b0

Browse files
committed
fix(core): use dual stack config
1 parent 6a2b784 commit b18c2b0

File tree

4 files changed

+43
-6
lines changed

4 files changed

+43
-6
lines changed

volcengine-java-sdk-core/src/main/java/com/volcengine/ApiClient.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,8 @@ public class ApiClient {
103103

104104
private Set<String> customBootstrapRegion;
105105

106+
private Boolean useDualStack;
107+
106108
/*
107109
* Constructor for ApiClient
108110
*/
@@ -549,6 +551,26 @@ public ApiClient setCustomBootstrapRegion(Set<String> customBootstrapRegion) {
549551
return this;
550552
}
551553

554+
/**
555+
* Get the use dual stack flag.
556+
*
557+
* @return use dual stack flag
558+
*/
559+
public Boolean getUseDualStack() {
560+
return this.useDualStack;
561+
}
562+
563+
/**
564+
* Set the use dual stack flag.
565+
*
566+
* @param useDualStack boolean
567+
* @return Api client
568+
*/
569+
public ApiClient setUseDualStack(boolean useDualStack) {
570+
this.useDualStack = useDualStack;
571+
return this;
572+
}
573+
552574
/**
553575
* Format the given parameter object into string.
554576
*

volcengine-java-sdk-core/src/main/java/com/volcengine/endpoint/DefaultEndpointProvider.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -678,14 +678,14 @@ private static String standardizeDomainServiceCode(String serviceCode) {
678678
}
679679

680680
private static String getDefaultEndpointByServiceInfo(String service, String regionCode,
681-
Set<String> customBootstrapRegion) {
681+
Set<String> customBootstrapRegion, Boolean useDualStack) {
682682
String resultEndpoint = ENDPOINT;
683683
ServiceEndpointInfo endpointInfo = DEFAULT_ENDPOINT_MAP.get(service);
684684
if (endpointInfo == null || !inBootstrapRegionList(regionCode, customBootstrapRegion)) {
685685
return resultEndpoint;
686686
}
687687

688-
String endpointSuffix = hasEnabledDualstack() ? DUALSTACK_ENDPOINT_SUFFIX : ENDPOINT_SUFFIX;
688+
String endpointSuffix = hasEnabledDualstack(useDualStack) ? DUALSTACK_ENDPOINT_SUFFIX : ENDPOINT_SUFFIX;
689689

690690
if (endpointInfo.isGlobal) {
691691
if (!endpointInfo.globalEndpoint.isEmpty()) {
@@ -744,15 +744,19 @@ private static boolean inBootstrapRegionList(String region, Set<String> customBo
744744
return false;
745745
}
746746

747-
private static boolean hasEnabledDualstack() {
748-
String enableDualstack = System.getenv("VOLC_ENABLE_DUALSTACK");
749-
return enableDualstack != null && enableDualstack.equals("true");
747+
private static boolean hasEnabledDualstack(Boolean useDualStack) {
748+
if (useDualStack == null) {
749+
String enableDualstack = System.getenv("VOLC_ENABLE_DUALSTACK");
750+
return enableDualstack != null && enableDualstack.equals("true");
751+
}
752+
753+
return useDualStack;
750754
}
751755

752756
@Override
753757
public ResolvedEndpoint endpointFor(ResolveEndpointOption option) {
754758
String endpoint = DefaultEndpointProvider.getDefaultEndpointByServiceInfo(option.getService(),
755-
option.getRegion(), option.getCustomBootstrapRegion());
759+
option.getRegion(), option.getCustomBootstrapRegion(), option.getUseDualStack());
756760
ResolvedEndpoint result = new ResolvedEndpoint();
757761
result.setEndpoint(endpoint);
758762
return result;

volcengine-java-sdk-core/src/main/java/com/volcengine/endpoint/ResolveEndpointOption.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ public class ResolveEndpointOption {
99

1010
private Set<String> customBootstrapRegion = new HashSet<>();
1111

12+
private Boolean useDualStack = null;
13+
1214
public String getService() {
1315
return service;
1416
}
@@ -33,4 +35,12 @@ public void setCustomBootstrapRegion(Set<String> customBootstrapRegion) {
3335
this.customBootstrapRegion = customBootstrapRegion;
3436
}
3537

38+
public Boolean getUseDualStack() {
39+
return useDualStack;
40+
}
41+
42+
public void setUseDualStack(Boolean useDualStack) {
43+
this.useDualStack = useDualStack;
44+
}
45+
3646
}

volcengine-java-sdk-core/src/main/java/com/volcengine/interceptor/ResolveEndpointInterceptor.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ public InterceptorContext intercept(InterceptorContext context) throws ApiExcept
4242
option.setService(service);
4343
option.setRegion(context.getApiClient().getRegion());
4444
option.setCustomBootstrapRegion(context.getApiClient().getCustomBootstrapRegion());
45+
option.setUseDualStack(context.getApiClient().getUseDualStack());
4546
ResolvedEndpoint resolvedEndpoint = endpointResolver.endpointFor(option);
4647
context.getRequestContext().setHost(resolvedEndpoint.getEndpoint());
4748
}

0 commit comments

Comments
 (0)