Using localhost (not local loopback) in SurefireForkChannel.java
diff --git a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/extensions/SurefireForkChannel.java b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/extensions/SurefireForkChannel.java
index 3ca2dad..cf522e8 100644
--- a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/extensions/SurefireForkChannel.java
+++ b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/extensions/SurefireForkChannel.java
@@ -84,7 +84,7 @@
super( arguments );
server = open( withThreadPool( THREAD_POOL ) );
setTrueOptions( SO_REUSEADDR, TCP_NODELAY, SO_KEEPALIVE );
- InetAddress ip = Inet4Address.getLoopbackAddress();
+ InetAddress ip = Inet4Address.getLocalHost();
server.bind( new InetSocketAddress( ip, 0 ), 1 );
InetSocketAddress localAddress = (InetSocketAddress) server.getLocalAddress();
localHost = localAddress.getHostString();
diff --git a/maven-surefire-common/src/test/java/org/apache/maven/surefire/extensions/ForkChannelTest.java b/maven-surefire-common/src/test/java/org/apache/maven/surefire/extensions/ForkChannelTest.java
index ac30a66..01bb8f3 100644
--- a/maven-surefire-common/src/test/java/org/apache/maven/surefire/extensions/ForkChannelTest.java
+++ b/maven-surefire-common/src/test/java/org/apache/maven/surefire/extensions/ForkChannelTest.java
@@ -33,6 +33,7 @@
import java.io.Closeable;
import java.io.File;
import java.io.IOException;
+import java.net.InetAddress;
import java.net.Socket;
import java.net.URI;
import java.nio.ByteBuffer;
@@ -98,9 +99,10 @@
assertThat( channel.getCountdownCloseablePermits() )
.isEqualTo( 3 );
+ String localHost = InetAddress.getLocalHost().getHostAddress();
assertThat( channel.getForkNodeConnectionString() )
- .startsWith( "tcp://127.0.0.1:" )
- .isNotEqualTo( "tcp://127.0.0.1:" );
+ .startsWith( "tcp://" + localHost + ":" )
+ .isNotEqualTo( "tcp://" + localHost + ":" );
URI uri = new URI( channel.getForkNodeConnectionString() );
@@ -171,7 +173,7 @@
@Override
public void run()
{
- try ( Socket socket = new Socket( "127.0.0.1", port ) )
+ try ( Socket socket = new Socket( InetAddress.getLocalHost().getHostAddress(), port ) )
{
byte[] data = new byte[128];
int readLength = socket.getInputStream().read( data );
diff --git a/surefire-api/src/test/java/org/apache/maven/surefire/api/util/internal/AsyncSocketTest.java b/surefire-api/src/test/java/org/apache/maven/surefire/api/util/internal/AsyncSocketTest.java
index 0128736..004d743 100644
--- a/surefire-api/src/test/java/org/apache/maven/surefire/api/util/internal/AsyncSocketTest.java
+++ b/surefire-api/src/test/java/org/apache/maven/surefire/api/util/internal/AsyncSocketTest.java
@@ -191,7 +191,7 @@
@SuppressWarnings( "checkstyle:magicnumber" )
private void client() throws Exception
{
- InetSocketAddress hostAddress = new InetSocketAddress( InetAddress.getLoopbackAddress(), address.getPort() );
+ InetSocketAddress hostAddress = new InetSocketAddress( InetAddress.getLocalHost(), address.getPort() );
AsynchronousSocketChannel clientSocketChannel = AsynchronousSocketChannel.open();
clientSocketChannel.connect( hostAddress ).get(); // Wait until connection is done.
InputStream is = new BufferedInputStream( newInputStream( clientSocketChannel ), 64 * 1024 );