Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ipv6 #2677

Merged
merged 3 commits into from
Jul 26, 2022
Merged

Ipv6 #2677

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
import javax.annotation.PostConstruct;

import com.alibaba.cloud.nacos.event.NacosDiscoveryInfoChangedEvent;
import com.alibaba.cloud.nacos.intetuntil.InetIPv6Utils;
import com.alibaba.cloud.nacos.util.InetIPv6Utils;
import com.alibaba.nacos.api.naming.NamingService;
import com.alibaba.nacos.api.naming.PreservedMetadataKeys;
import com.alibaba.nacos.client.naming.utils.UtilAndComs;
Expand Down Expand Up @@ -165,7 +165,7 @@ public class NacosDiscoveryProperties {
private String networkInterface = "";

/**
* choose IPV4 or IPV6,if you don't set it will choose IPV4.
* choose IPv4 or IPv6,if you don't set it will choose IPv4.
*/
private String ipType = "IPv4";

Expand Down Expand Up @@ -222,7 +222,7 @@ public class NacosDiscoveryProperties {
private boolean failFast = true;

@Autowired
private InetIPv6Utils inetIPUtils;
private InetIPv6Utils inetIPv6Utils;

@Autowired
private InetUtils inetUtils;
Expand Down Expand Up @@ -255,11 +255,11 @@ public void init() throws Exception {
if (StringUtils.isEmpty(ip)) {
// traversing network interfaces if didn't specify a interface
if (StringUtils.isEmpty(networkInterface)) {
if (ipType.equalsIgnoreCase("IPv4")) {
if ("IPv4".equalsIgnoreCase(ipType)) {
ip = inetUtils.findFirstNonLoopbackHostInfo().getIpAddress();
}
else if (ipType.equalsIgnoreCase("IPv6")) {
ip = inetIPUtils.findFirstNonLoopbackHostInfo().getIpAddress();
else if ("IPv6".equalsIgnoreCase(ipType)) {
ip = inetIPv6Utils.findFirstNonLoopbackHostInfo().getIpAddress();
int index = ip.indexOf('%');
ip = index > 0 ? ip.substring(0, index) : ip;
ip = "[" + ip + "]";
Expand All @@ -282,7 +282,7 @@ else if (ipType.equalsIgnoreCase("IPv6")) {
InetAddress currentAddress = inetAddress.nextElement();
if (currentAddress instanceof Inet4Address
|| currentAddress instanceof Inet6Address
&& !currentAddress.isLoopbackAddress()) {
&& !currentAddress.isLoopbackAddress()) {
ip = currentAddress.getHostAddress();
break;
}
Expand Down Expand Up @@ -336,8 +336,8 @@ public void setLogName(String logName) {
this.logName = logName;
}

public void setInetIPUtils(InetIPv6Utils inetIPUtils) {
this.inetIPUtils = inetIPUtils;
public void setInetIPv6Utils(InetIPv6Utils inetIPv6Utils){
this.inetIPv6Utils = inetIPv6Utils;
}

public void setInetUtils(InetUtils inetUtils) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
* limitations under the License.
*/

package com.alibaba.cloud.nacos.intetuntil;
package com.alibaba.cloud.nacos.util;

import java.io.Closeable;
import java.io.IOException;
Expand Down Expand Up @@ -46,6 +46,11 @@ public class InetIPv6Utils implements Closeable {

private final InetUtilsProperties properties;

@Override
public void close() {
this.executorService.shutdown();
}

public InetIPv6Utils(final InetUtilsProperties properties) {
this.properties = properties;
this.executorService = Executors.newSingleThreadExecutor((r) -> {
Expand All @@ -56,11 +61,6 @@ public InetIPv6Utils(final InetUtilsProperties properties) {
});
}

@Override
public void close() {
this.executorService.shutdown();
}

public InetUtils.HostInfo findFirstNonLoopbackHostInfo() {
InetAddress address = this.findFirstNonLoopbackIPv6Address();
if (address != null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
* limitations under the License.
*/

package com.alibaba.cloud.nacos.intetuntil;
package com.alibaba.cloud.nacos.util;

import com.alibaba.cloud.nacos.ConditionalOnNacosDiscoveryEnabled;

Expand All @@ -24,21 +24,21 @@
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;


/**
* @author HH
*/
@Configuration(proxyBeanMethods = false)
@ConditionalOnDiscoveryEnabled
@ConditionalOnNacosDiscoveryEnabled
public class UtilIPv6AutoConfiguration {
public UtilIPv6AutoConfiguration() {
}

public UtilIPv6AutoConfiguration() {
}

@Bean
@ConditionalOnMissingBean
public InetIPv6Utils inetIPv6Utils(InetUtilsProperties properties) {
return new InetIPv6Utils(properties);
}

@Bean
@ConditionalOnMissingBean
public InetIPv6Utils inetIPv6Utils(InetUtilsProperties properties) {
return new InetIPv6Utils(properties);
}
}

Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.alibaba.cloud.nacos.discovery.reactive.NacosReactiveDiscoveryClientConfiguration,\
com.alibaba.cloud.nacos.discovery.configclient.NacosConfigServerAutoConfiguration,\
com.alibaba.cloud.nacos.NacosServiceAutoConfiguration,\
com.alibaba.cloud.nacos.intetuntil.UtilIPv6AutoConfiguration
com.alibaba.cloud.nacos.util.UtilIPv6AutoConfiguration
org.springframework.cloud.bootstrap.BootstrapConfiguration=\
com.alibaba.cloud.nacos.discovery.configclient.NacosDiscoveryClientConfigServiceBootstrapConfiguration
org.springframework.context.ApplicationListener=\
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
package com.alibaba.cloud.nacos.discovery;

import com.alibaba.cloud.nacos.NacosDiscoveryProperties;
import com.alibaba.cloud.nacos.util.UtilIPv6AutoConfiguration;
import org.junit.jupiter.api.Test;

import org.springframework.boot.autoconfigure.AutoConfigurations;
Expand All @@ -32,6 +33,7 @@ public class NacosDiscoveryAutoConfigurationTests {

private ApplicationContextRunner contextRunner = new ApplicationContextRunner()
.withConfiguration(AutoConfigurations.of(UtilAutoConfiguration.class,
UtilIPv6AutoConfiguration.class,
NacosDiscoveryAutoConfiguration.class));

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@

package com.alibaba.cloud.nacos.discovery;

import com.alibaba.cloud.nacos.NacosServiceAutoConfiguration;
import com.alibaba.cloud.nacos.util.UtilIPv6AutoConfiguration;
import org.junit.jupiter.api.Test;

import org.springframework.boot.autoconfigure.AutoConfigurations;
Expand All @@ -35,6 +37,8 @@ public class NacosDiscoveryClientConfigurationTest {

private ApplicationContextRunner contextRunner = new ApplicationContextRunner()
.withConfiguration(AutoConfigurations.of(UtilAutoConfiguration.class,
UtilIPv6AutoConfiguration.class,
NacosServiceAutoConfiguration.class,
NacosDiscoveryAutoConfiguration.class,
NacosDiscoveryClientConfiguration.class, this.getClass()));

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
package com.alibaba.cloud.nacos.discovery.reactive;

import com.alibaba.cloud.nacos.discovery.NacosDiscoveryAutoConfiguration;
import com.alibaba.cloud.nacos.util.UtilIPv6AutoConfiguration;
import org.junit.jupiter.api.Test;

import org.springframework.boot.autoconfigure.AutoConfigurations;
Expand All @@ -33,6 +34,7 @@ public class NacosReactiveDiscoveryClientConfigurationTests {

private ApplicationContextRunner contextRunner = new ApplicationContextRunner()
.withConfiguration(AutoConfigurations.of(UtilAutoConfiguration.class,
UtilIPv6AutoConfiguration.class,
NacosDiscoveryAutoConfiguration.class,
NacosReactiveDiscoveryClientConfiguration.class));

Expand Down