From: <ba...@us...> - 2007-03-07 13:40:22
|
Revision: 86 http://trivial.svn.sourceforge.net/trivial/?rev=86&view=rev Author: baepel Date: 2007-03-07 05:40:13 -0800 (Wed, 07 Mar 2007) Log Message: ----------- remove loopback bug -> detect correct network interfaces Modified Paths: -------------- trunk/eclipse/easypaste/src/net/sf/trivial/easypaste/internal/pi/presence/PresenceServiceImpl.java Modified: trunk/eclipse/easypaste/src/net/sf/trivial/easypaste/internal/pi/presence/PresenceServiceImpl.java =================================================================== --- trunk/eclipse/easypaste/src/net/sf/trivial/easypaste/internal/pi/presence/PresenceServiceImpl.java 2007-03-07 11:33:00 UTC (rev 85) +++ trunk/eclipse/easypaste/src/net/sf/trivial/easypaste/internal/pi/presence/PresenceServiceImpl.java 2007-03-07 13:40:13 UTC (rev 86) @@ -2,6 +2,9 @@ import java.io.IOException; import java.net.InetAddress; +import java.net.NetworkInterface; +import java.util.Enumeration; +import java.util.Vector; import javax.jmdns.JmDNS; @@ -34,7 +37,35 @@ } private JmDNS createJmDNS() throws IOException { - return new JmDNS(InetAddress.getLocalHost()); + InetAddress finalAddress = null; + System.out.println("Starting service on the following interfaces:"); + try { + Vector<NetworkInterface> possibleValues = new Vector<NetworkInterface>(); + + Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces(); + while (interfaces.hasMoreElements()) { + possibleValues.add(interfaces.nextElement()); + } + + for (NetworkInterface ni : possibleValues) { + Enumeration<InetAddress> e = ni.getInetAddresses(); + while (e.hasMoreElements()) { + InetAddress ia = e.nextElement(); + if (!ia.isLoopbackAddress() && !ia.getHostAddress().contains(":")) { + finalAddress = ia; + System.out.println("\t" + ni.getDisplayName() + + "\t" + ia.getHostName() + + " (" + ia.getHostAddress() + ")"); + + } + } + } + } + catch (Exception e) { + e.printStackTrace(); + System.exit(1); + } + return new JmDNS(finalAddress); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |