From fd0658ce7c06669e132af145f77c148afa8abd3f Mon Sep 17 00:00:00 2001 From: orbiter Date: Mon, 16 Nov 2009 23:08:20 +0000 Subject: [PATCH] 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 --- source/net/yacy/kelondro/util/Domains.java | 26 ++++++++++++++++------ 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/source/net/yacy/kelondro/util/Domains.java b/source/net/yacy/kelondro/util/Domains.java index df2489e28..1dc66ada9 100644 --- a/source/net/yacy/kelondro/util/Domains.java +++ b/source/net/yacy/kelondro/util/Domains.java @@ -522,20 +522,32 @@ 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 { - localHostAddress = InetAddress.getLocalHost(); - localHostName = localHostAddress.getHostName(); - } catch (UnknownHostException e) { - localHostName = "localhost"; - } 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 = "127.0.0.1"; + } + try { + localHostAddresses = InetAddress.getAllByName(localHostName); + } catch (UnknownHostException e) { + localHostAddresses = new InetAddress[0]; + } + } } public static InetAddress myPublicLocalIP() {