From 9af5bd326500773d89ce30311af5e3cac2a9b3f5 Mon Sep 17 00:00:00 2001
From: Valery Kharseko <vharseko@3a-systems.ru>
Date: Tue, 29 Sep 2026 06:39:04 +0000
Subject: [PATCH] [#1112] Listen on the configured listen-address in the HTTP connection handler and the JMX RMI connector (#1113)
---
opendj-server-legacy/src/test/java/org/opends/server/TestCaseUtils.java | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 56 insertions(+), 0 deletions(-)
diff --git a/opendj-server-legacy/src/test/java/org/opends/server/TestCaseUtils.java b/opendj-server-legacy/src/test/java/org/opends/server/TestCaseUtils.java
index 3d41854..52a49da 100644
--- a/opendj-server-legacy/src/test/java/org/opends/server/TestCaseUtils.java
+++ b/opendj-server-legacy/src/test/java/org/opends/server/TestCaseUtils.java
@@ -52,7 +52,10 @@
import java.lang.management.ThreadMXBean;
import java.net.BindException;
import java.net.ConnectException;
+import java.net.Inet4Address;
+import java.net.InetAddress;
import java.net.InetSocketAddress;
+import java.net.NetworkInterface;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.SocketAddress;
@@ -130,6 +133,7 @@
import org.opends.server.util.DynamicConstants;
import org.opends.server.util.LDIFReader;
import org.opends.server.util.TestTimer;
+import org.testng.SkipException;
import com.forgerock.opendj.util.OperatingSystem;
@@ -966,6 +970,58 @@
}
/**
+ * Returns an IPv4 address of the local host other than a loopback one, for the tests of a listen
+ * address: a listener bound to the loopback address refuses connections to it, while a listener
+ * bound to the wildcard address accepts them.
+ *
+ * @return an IPv4 address of an interface of the local host which is up and not a loopback one
+ * @throws IOException
+ * if the network interfaces cannot be listed
+ * @throws SkipException
+ * if the local host has no such address
+ */
+ public static InetAddress getNonLoopbackAddress() throws IOException
+ {
+ for (NetworkInterface nif : Collections.list(NetworkInterface.getNetworkInterfaces()))
+ {
+ if (!nif.isUp() || nif.isLoopback())
+ {
+ continue;
+ }
+ for (InetAddress address : Collections.list(nif.getInetAddresses()))
+ {
+ if (address instanceof Inet4Address && !address.isLinkLocalAddress())
+ {
+ return address;
+ }
+ }
+ }
+ throw new SkipException("the local host has no IPv4 address other than a loopback one");
+ }
+
+ /**
+ * Tells whether a connection to the given address and port is accepted right now.
+ *
+ * @param address
+ * the address to connect to
+ * @param port
+ * the port to connect to
+ * @return {@code true} if the connection is accepted, {@code false} if it fails
+ */
+ public static boolean isAcceptingConnections(InetAddress address, int port)
+ {
+ try (Socket socket = new Socket())
+ {
+ socket.connect(new InetSocketAddress(address, port), 5000);
+ return true;
+ }
+ catch (IOException e)
+ {
+ return false;
+ }
+ }
+
+ /**
* Finds a free server socket port on the local host.
*
* @return The free port.
--
Gitblit v1.10.0