avoid forced execution of InetAddress.getLocalHost() at startup, because that hangs at some strangely declared linux configurations. The Domains.localHostAddresses object is first instantiated with a more simple logic and enriched with more host addresses using a concurrent thread that will not block a startup process.

git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@6482 6c8d7289-2bf4-0310-a012-ef5d649a1542
pull/1/head
orbiter 15 years ago
parent 013f337d3f
commit fd0658ce7c

@ -522,14 +522,25 @@ public class Domains {
public static String localHostName;
public static InetAddress[] localHostAddresses;
static {
localHostName = "127.0.0.1";
try {
localHostAddress = InetAddress.getByName("127.0.0.1");
localHostAddress = InetAddress.getByName(localHostName);
} catch (UnknownHostException e1) {}
try {
localHostAddresses = InetAddress.getAllByName(localHostName);
} catch (UnknownHostException e) {
localHostAddresses = new InetAddress[0];
}
new localHostAddressLookup().start();
}
public static class localHostAddressLookup extends Thread {
public void run() {
try {
localHostAddress = InetAddress.getLocalHost();
localHostName = localHostAddress.getHostName();
} catch (UnknownHostException e) {
localHostName = "localhost";
localHostName = "127.0.0.1";
}
try {
localHostAddresses = InetAddress.getAllByName(localHostName);
@ -537,6 +548,7 @@ public class Domains {
localHostAddresses = new InetAddress[0];
}
}
}
public static InetAddress myPublicLocalIP() {
// list all addresses

Loading…
Cancel
Save